Akses Node DOM XML

Dengan DOM, Anda dapat mengakses setiap node di dalam dokumen XML.

Akses node

Anda dapat mengakses node dengan tiga cara:

  • Dengan menggunakan metode getElementsByTagName()
  • Dengan melooping (menggali) pohon node
  • Dengan memanfaatkan hubungan antar node dalam pohon node

Metode getElementsByTagName()

getElementsByTagName() Mengembalikan semua elemen dengan nama tag yang ditentukan.

Sintaks

node.getElementsByTagName("tagname");

Contoh

Contoh di bawah mengembalikan semua elemen <title> di bawah x:

x.getElementsByTagName("title");

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

xmlDoc.getElementsByTagName("title");

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

Daftar node DOM

getElementsByTagName() 方法返回节点列表(node list)。节点列表是节点的数组。

Method ini mengembalikan daftar node (node list). Daftar node adalah array dari node.

x = xmlDoc.getElementsByTagName("title");

Dapat diakses melalui nomor indeks di x. Jika ingin mengakses elemen <title> ketiga, Anda dapat menulis seperti ini:

y = x[2];Keterangan:

Coba sendiri

Indeks dimulai dari 0.

Anda dapat menggunakan Panjang daftar node DOM

Properti untuk menentukan panjang daftar node list (jumlah node). Anda dapat menggunakan length

Contoh

Properti untuk mengulangi daftar node list:
for (i = 0; i < x.length; i++) {
  var x = xmlDoc.getElementsByTagName("title");
  }

Coba sendiri

// Di tempat ini dapat menulis kode untuk mengolah setiap node

Node tipe di XML dokumen documentElement Properti adalah root node.

Properti node adalah nodeName Properti adalah nama node.

Properti node adalah nodeType Properti adalah tipe node.

Anda akan belajar tentang properti node lebih lanjut di bab berikutnya dalam tutorial ini.

Coba sendiri

Pengulangan node

Kode di bawah ini mengulangi pengelompokan node anak root node (juga node elemen):

Contoh

txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length; i++) {
  // Process only element nodes (type 1)
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

Coba sendiri

Pengertian contoh:

  1. Dengan asumsi bahwa Anda sudah menempatkan "books.xml"Memuat ke xmlDoc
  2. Mengambil node anak dari root element (xmlDoc)
  3. 检查每个子节点的节点类型。如果节点类型为 "1", maka adalah node elemen
  4. Jika node adalah node elemen, tampilkan nama node

Navigasi hubungan node

Kode di bawah ini menggunakan hubungan node untuk navigasi di dalam pohon node:

Contoh

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i < xlen; i++) {
  // Hanya mengolah node elemen (tipe 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

Coba sendiri

Pengertian contoh:

  1. Dengan asumsi bahwa Anda sudah menempatkan "books.xml"Memuat ke xmlDoc
  2. Mengambil node anak dari elemen pertama book
  3. 将 "y" 变量设置为第一个 book 元素的第一个子节点
  4. 对于每个子节点(从第一个子节点 "y" 开始):
  5. 检查每个子节点的节点类型。如果节点类型为 "1",则它是元素节点
  6. 如果是元素节点,则输出该节点的名称
  7. 将 "y" 变量设置为下一个同级节点,并再次运行循环