Akses Noda XML DOM

通过 DOM,您能够访问 XML 文档中的每个节点。

Contoh

下面的例子使用 XML 文件 books.xml.

函数 loadXMLDoc(),位于外部 JavaScript 中,用于加载 XML 文件。

使用节点列表中的下标号来访问节点
本例使用 getElementsByTagname() 方法来获得 "books.xml" 中的第三个 <title> 元素。
使用 length 属性来循环节点
本例使用 length 属性来循环 "books.xml" 中的所有 <title> 元素。
查看元素的节点类型
本例使用 nodeType 属性来获得 "books.xml" 中根元素的节点类型。
循环元素节点
本例使用 nodeType 属性来处理 "books.xml" 中的元素节点。
使用节点的关系来循环元素节点
本例使用 nodeType 属性和 nextSibling 属性来处理 "books.xml" 中的元素节点。

访问节点

您可以通过三种方法来访问节点:

  1. 通过使用 getElementsByTagName() 方法
  2. 通过循环(遍历)节点树
  3. 通过利用节点的关系在节点树中导航

getElementsByTagName() 方法

getElementsByTagName() 返回拥有指定标签名的所有元素。

语法

node.getElementsByTagName("tagname");

Contoh

Contoh di bawah ini mengembalikan semua element <title> di bawah element x:

x.getElementsByTagName("title");

Perhatikan, contoh di atas hanya mengembalikan element <title> di bawah node x. Untuk mengembalikan semua element <title> di dalam dokumen XML, gunakan:

xmlDoc.getElementsByTagName("title");

Di sini, xmlDoc adalah dokumen itu sendiri (node dokumen).

Daftar Node DOM

getElementsByTagName() method untuk kembalikan daftar node (node list). Daftar node adalah daftar node dalam bentuk array.

Kode di bawah ini menggunakan loadXMLDoc() Tetapkan "books.xml"Muat xmlDoc ke dalam, dan simpan daftar node <title> di variabel x:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");

Dapat diakses melalui indeks di x, element <title>. Untuk mengakses <title> ketiga, Anda dapat menulis:

y=x[2];

TIY

Keterangan:Indeks dimulai dari 0.

Dalam bab yang akan datang di tutorial ini, Anda akan belajar lebih banyak tentang Daftar Node.

Panjang Daftar Node DOM

Atribut length menentukan panjang daftar node (yaitu jumlah node).

Anda dapat mengulangi daftar node menggunakan atribut length:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");
for (i=0;i<x.length;i++)
  { 
  document.write(x[i].childNodes[0].nodeValue);
  document.write("<br />");
  }

Pengertian contoh:

  1. Gunakan loadXMLDoc() Tetapkan "books.xml"Muat xmlDoc
  2. Dapatkan semua element <title>.
  3. Output nilai node teks setiap element <title>.

TIY

Jenis Node

Dokumen XML documentElement Atribut adalah root node.

Atribut node adalah nodeName Atribut adalah nama node.

Atribut node adalah nodeType Atribut adalah jenis node.

Anda akan belajar lebih banyak tentang atribut node di bab berikutnya dalam tutorial ini.

TIY

Pergalakan node

Kode di bawah ini mengulangi anak node root node, yang juga adalah node element:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{ 
  if (x[i].nodeType==1)
  {//Proses hanya node element (jenis 1) 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

Pengertian contoh:

  1. Melalui penggunaan loadXMLDoc() Tetapkan "books.xml"Memuatkan xmlDoc"
  2. Dapatkan anak node root element.
  3. Periksa jenis node setiap anak node. Jika jenis node adalah "1", ia adalah node element.
  4. Jika adalah node element, keluarkan nama node

TIY

Navigasi menggunakan hubungan node

Kod di bawah ini melalui penggunaan hubungan antara node untuk navigasi dalam pohon node:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].childNodes;
y=xmlDoc.getElementsByTagName("book")[0].firstChild;
for (i=0;i<x.length;i++)
{
if (y.nodeType==1)
  {//Proses hanya node element (jenis 1)
  document.write(y.nodeName + "<br />");
  }
y=y.nextSibling;
}
  1. Melalui penggunaan loadXMLDoc() Tetapkan "books.xml"Memuatkan xmlDoc"
  2. Dapatkan anak node elemen pertama "book"
  3. Tetapkan "y" variabel kepada anak node pertama elemen "book"
  4. Periksa jenis node setiap anak node, jika jenis node adalah "1", adalah node element
  5. Jika adalah node element, keluarkan nama node itu
  6. Tetapkan "y" variabel kepada node yang sama berikutnya, dan jalankan kembali lingkaran

TIY