tutorial pengembangan web terbaru
 

XML DOM - Mengakses Nodes


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


Coba Sendiri - Contoh

Contoh di bawah ini menggunakan file XML books.xml .

Mengakses node menggunakan nomor indeks dalam daftar node
Gunakan getElementsByTagName() metode untuk mendapatkan yang ketiga <title> elemen dalam "books.xml"

Loop melalui node menggunakan properti panjang
Menggunakan properti panjang untuk loop melalui semua <title> elemen dalam "books.xml"

Melihat jenis node elemen
Gunakan properti NodeType untuk mendapatkan jenis node elemen root di "books.xml" .

Loop melalui node elemen
Gunakan properti NodeType hanya proses node elemen dalam "books.xml" .

Loop melalui node elemen menggunakan hubungan simpul
Menggunakan properti NodeType dan properti nextSibling untuk memproses node elemen dalam "books.xml" .

×

Header


mengakses Nodes

Anda dapat mengakses node dalam tiga cara:

1. Dengan menggunakan getElementsByTagName() metode

2. Dengan perulangan melalui (traversing) pohon node.

3. Dengan navigasi pohon simpul, menggunakan hubungan simpul.


The getElementsByTagName() Metode

Buka menu () mengembalikan semua elemen dengan nama tag tertentu.

Sintaksis

node.getElementsByTagName("tagname");

Contoh

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

x.getElementsByTagName("title");

Perhatikan bahwa contoh di atas hanya kembali <title> elemen di bawah x simpul. Untuk mengembalikan semua <title> elemen dalam penggunaan dokumen XML:

xmlDoc.getElementsByTagName("title");

mana xmlDoc adalah dokumen itu sendiri (document node) .


DOM Node Daftar

The getElementsByTagName() metode mengembalikan daftar simpul. Sebuah daftar node adalah array dari node.

x = xmlDoc.getElementsByTagName("title");

The <title> elemen dalam x dapat diakses oleh sejumlah indeks. Untuk mengakses ketiga <title> Anda dapat menulis ::

y = x[2];

Note: Indeks dimulai dari 0.

Anda akan belajar lebih banyak tentang daftar node dalam bab selanjutnya dari tutorial ini.


DOM Node Daftar Panjang

Properti panjang mendefinisikan panjang dari daftar node (the number of nodes) .

Anda dapat loop melalui daftar node dengan menggunakan properti panjang:

Contoh

var x = xmlDoc.getElementsByTagName("title");

for (i = 0; i <x.length; i++) {
  // do something for each node
  }
Cobalah sendiri "

Jenis Node

The documentElement properti dari dokumen XML adalah simpul akar.

The nodeName properti dari sebuah node adalah nama dari node.

The nodeType properti dari sebuah node adalah jenis node.

Anda akan belajar lebih banyak tentang sifat-sifat node dalam bab berikutnya dari tutorial ini.

Cobalah sendiri


melintasi Nodes

Kode berikut loop melalui node anak, yang juga node elemen, dari simpul akar:

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>";
  }
}
Cobalah sendiri "

Contoh menjelaskan:

  1. Misalkan Anda telah dimuat " books.xml " ke xmlDoc
  2. Dapatkan node anak dari elemen root (xmlDoc)
  3. Untuk setiap node anak, periksa jenis node. Jika jenis node "1" itu adalah simpul elemen
  4. Output nama node jika node elemen

Menjelajahi Node Hubungan

Kode berikut menavigasi pohon simpul menggunakan hubungan simpul:

Contoh

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;

txt = "";
for (i = 0; i <xlen; i++) {
  // Process only element nodes (type 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}
Cobalah sendiri "

Contoh menjelaskan:

  1. Misalkan Anda telah dimuat " books.xml " ke xmlDoc
  2. Dapatkan node anak dari elemen buku pertama
  3. Mengatur "y" variabel menjadi simpul anak pertama dari elemen buku pertama
  4. Untuk setiap node anak (starting with the first child node "y") :
  5. Periksa jenis simpul. Jika jenis node "1" itu adalah simpul elemen
  6. Output nama node jika node elemen
  7. Mengatur "y" variabel menjadi saudara node berikutnya, dan dijalankan melalui loop lagi