Daftar Node DOM XML

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

Contoh

Contoh di bawah ini menggunakan berkas XML books.xml.

Fungsi loadXMLDoc()yang berada di dalam JavaScript eksternal, digunakan untuk memuat berkas XML.

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

Daftar Node DOM

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

Objek NodeList merepresentasikan daftar node, diurutkan seperti di XML.

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

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

DOM node list

Blok kod 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.

Blok kode di bawah ini mengembalikan teks dari elemen <title> pertama 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 sendiri. Jika dihapus atau ditambahkan elemen, daftar akan otomatis diperbarui.

Atribut length daftar node adalah jumlah node dalam daftar.

Blok kod 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 dalam daftar.

Blok kode di bawah ini menggunakan atribut length untuk mengelilingi daftar elemen <title>:

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

Output:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML

Contoh penjelasan:

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

TIY

DOM Attribute List (Named Node Map)

Atribut elemen node kembalikan daftar node atribut.

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

List attributed akan mempertahankan pembaruan sendiri. Jika dihapus atau ditambahkan atribut, daftar ini akan otomatis diperbarui.

Blok kod di bawah ini menggunakan loadXMLDoc() Muatkan "books.xml" ke xmlDoc dan daripada "books.xmlPautan pertama <book> dalam "

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

Setelah pengalaman di atas dijalankan, x.length sama dengan bilangan sifat, dan boleh digunakan x.getNamedItem() untuk mengembalikan nod sifat.

Blok kod di bawah ini menampilkan nilai sifat "category" bagi buku dan bilangan sifatnya:

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

Output:

children
1

Contoh penjelasan:

  • Dengan menggunakan loadXMLDoc() Tetapkan "books.xml"Memuatkan xmlDoc dalam
  • Tetapkan x sebagai senarai sifat semua sifat elemen <book> pertama
  • Output nilai daripada sifat "category"
  • Output panjang senarai sifat

TIY