Daftar Node DOM XML

Daftar node dikembalikan oleh metode getElementsByTagName() dan atribut childNodes.

Contoh

Contoh di bawah ini menggunakan berkas XML books.xml.

Fungsi loadXMLDoc()ditempatkan di JavaScript eksternal, untuk memuat berkas XML.

Mendapatkan teks dari elemen <title> pertama
Contoh ini menggunakan metode getElementsByTagName() untuk mendapatkan teks dari elemen <title> pertama di "books.xml".
Mengulangi node melalui atribut length
Contoh ini menggunakan daftar node dan atribut length untuk mengulangi semua elemen <title> di "books.xml".
Mendapatkan atribut elemen
Contoh ini menggunakan daftar atribut untuk mendapatkan atribut dari elemen <title> pertama di "books.xml".

Daftar Node DOM

Ketika menggunakan atribut atau metode seperti childNodes atau getElementsByTagName(), akan mengembalikan objek NodeList.

Objek NodeList merepresentasikan daftar node, diurutkan dengan urutan yang sama seperti di XML.

Menggunakan indeks yang dimulai dari 0 untuk mengakses node dalam daftar node.

Gambar di bawah ini mewakili "}}books.xml"Daftar node dari elemen <title>:"

Daftar node DOM

Kode potongan di bawah ini menggunakan loadXMLDoc() Muat "books.xml" ke xmlDoc dan kembalikan "books.xml"Daftar node dari elemen title:"

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

Setelah eksekusi pernyataan di atas, x menjadi objek NodeList.

Kode potongan di bawah ini mengembalikan teks dari elemen <title> pertama di dalam daftar node x:

txt=x[0].childNodes[0].nodeValue;

Setelah eksekusi pernyataan di atas, txt = "Everyday Italian".

TIY

Panjang Daftar Node

Objek NodeList akan mempertahankan pembaruan dirinya sendiri. Jika dihapus atau ditambahkan elemen, daftar akan otomatis diperbarui.

Atribut length dari NodeList adalah jumlah node di dalam daftar.

Kode potongan di bawah ini menggunakan loadXMLDoc() Tetapkan "books.xml"Muat xmlDoc, dan kembalikan jumlah elemen <title> di "books.xml":

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

Setelah eksekusi pernyataan di atas, x = 4.

Panjang daftar node dapat digunakan untuk mengelilingi semua elemen di dalam daftar.

Kode potongan di bawah ini menggunakan atribut length untuk mengelilingi daftar elemen <title>:

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

Keluaran:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML

Contoh penjelasan:

  • Dengan menggunakan loadXMLDoc() Tetapkan "books.xml"Muat xmlDoc
  • Atur variabel x untuk menyimpan daftar node semua elemen title.
  • Output nilai dari node teks semua elemen <title>.

TIY

DOM Attribute List (Named Node Map)

Atribut elemen node kembali ke daftar node atribut.

Hal ini disebut Named Node Map, kecuali untuk beberapa perbedaan di metode dan atribut, ia mirip dengan daftar node.

Daftar atribut akan mempertahankan pembaruan dirinya sendiri. Jika dihapus atau ditambahkan atribut, daftar ini akan otomatis diperbarui.

Kode potongan di bawah ini menggunakan loadXMLDoc() Muat "books.xml" ke xmlDoc, dan dari "books.xmlTautan pertama <book> dalam "

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book')[0].attributes;

Setelah kode di atas dieksekusi, x.length sama dengan jumlah atribut, dapat digunakan x.getNamedItem() untuk kembalikan node atribut.

Kode potongan di bawah ini untuk menampilkan nilai atribut "category" dari book, serta jumlah atributnya:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].attributes;
document.write(x.getNamedItem("category").nodeValue);
document.write("<br />" + x.length);

Keluaran:

children
1

Contoh penjelasan:

  • Dengan menggunakan loadXMLDoc() Tetapkan "books.xml"Memuat xmlDoc
  • Tetapkan variabel x sebagai daftar atribut semua atribut elemen <book> pertama
  • Keluaran nilai atribut "category"
  • Keluaran panjang daftar atribut

TIY