XML DOM - Mengakses Node
Dengan DOM, Anda dapat mengakses setiap node dalam dokumen XML.
Cobalah Sendiri - Contoh
Contoh di bawah ini menggunakan file XML books.xml .
Gunakan metode getElementsByTagName() untuk mendapatkan elemen <title> ketiga di "books.xml"
Gunakan properti length untuk mengulang semua elemen <title> di "books.xml"
Gunakan properti nodeType untuk mendapatkan tipe node dari elemen root di "books.xml".
Gunakan properti nodeType untuk hanya memproses node elemen di "books.xml".
Gunakan properti nodeType dan properti nextSibling untuk memproses node elemen di "books.xml".
Mengakses Node
Anda dapat mengakses sebuah node dengan tiga cara:
1. Dengan menggunakan metode getElementsByTagName()
2. Dengan melakukan perulangan (melintasi) pohon simpul.
3. Dengan menavigasi pohon simpul, menggunakan hubungan simpul.
Metode getElementsByTagName()
getElementsByTagName() mengembalikan semua elemen dengan nama tag yang ditentukan.
Sintaksis
node.getElementsByTagName("tagname");
Contoh
Contoh berikut mengembalikan semua elemen <title> di bawah elemen x:
x.getElementsByTagName("title");
Perhatikan bahwa contoh di atas hanya mengembalikan elemen <title> di bawah simpul x. Untuk mengembalikan semua elemen <title> dalam dokumen XML gunakan:
xmlDoc.getElementsByTagName("title");
di mana xmlDoc adalah dokumen itu sendiri (document node).
Daftar Simpul DOM
Metode getElementsByTagName() mengembalikan daftar node. Sebuah daftar node adalah sebuah array dari node.
x = xmlDoc.getElementsByTagName("title");
Elemen <title> di x dapat diakses dengan nomor indeks. Untuk mengakses <title> ketiga Anda dapat menulis::
y = x[2];
Catatan: Indeks dimulai dari 0.
Anda akan mempelajari lebih lanjut tentang daftar simpul di bab selanjutnya dari tutorial ini.
Panjang Daftar Node DOM
Properti length mendefinisikan panjang daftar node (jumlah node).
Anda dapat mengulang daftar node dengan menggunakan properti length:
Contoh
var
x = xmlDoc.getElementsByTagName("title");
for (i = 0; i <x.length; i++) {
//
do something for each node
}
Tipe Node
Properti documentElement dari dokumen XML adalah simpul akar.
Properti nodeName dari sebuah node adalah nama dari node tersebut.
Properti nodeType dari sebuah node adalah tipe dari node tersebut.
Anda akan mempelajari lebih lanjut tentang properti node di bab berikutnya dari tutorial ini.
Melintasi Node
Kode berikut mengulang melalui simpul anak, yang juga merupakan simpul 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>";
}
}
Contoh menjelaskan:
- Misalkan Anda telah memuat " books.xml " ke dalam xmlDoc
- Dapatkan node anak dari elemen root (xmlDoc)
- Untuk setiap node anak, periksa jenis node. Jika tipe simpulnya adalah "1" itu adalah simpul elemen
- Keluarkan nama simpul jika itu adalah simpul elemen
Menavigasi Hubungan Node
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;
}
Contoh menjelaskan:
- Misalkan Anda telah memuat " books.xml "ke dalam xmlDoc
- Dapatkan simpul anak dari elemen buku pertama
- Setel variabel "y" menjadi simpul anak pertama dari elemen buku pertama
- Untuk setiap simpul anak (dimulai dengan simpul anak pertama "y"):
- Periksa jenis simpul. Jika tipe simpulnya adalah "1" itu adalah simpul elemen
- Keluarkan nama simpul jika itu adalah simpul elemen
- Atur variabel "y" menjadi simpul saudara berikutnya, dan jalankan melalui loop lagi