Dengan DOM, kita bisa mengakses setiap node dalam dokumen XML.
Section Artikel
Cara mengakses node:
getElementsByTagName ()
getElementsByTagName ()
mengembalikan semua elemen dengan nama tag yang ditentukan.
Sintaks
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 (node dokumen).
Metode getElementsByTagName ()
mengembalikan daftar node. Daftar node adalah serangkaian node.
x = xmlDoc.getElementsByTagName("title");
Elemen <title> dalam x dapat diakses dengan nomor indeks. Untuk mengakses <title> ketiga kita bisa tulis ::
y = x[2];
Catatan: Indeks dimulai dari 0.
Properti length mendefinisikan panjang daftar node (jumlah node).
Kita bisa melakukan perulangan melalui daftar node dengan menggunakan properti length:
Contoh :
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> var xhttp; xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); function myFunction(xml) { var x, i, txt, xmlDoc; xmlDoc = xml.responseXML; txt = ""; x = xmlDoc.getElementsByTagName("title"); for (i = 0; i < x.length; i++) { txt += x[i].childNodes[0].nodeValue + "<br>"; } document.getElementById("demo").innerHTML = txt; } </script> </body> </html>
Output :
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.
Contoh :
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); function myFunction(xml) { var xmlDoc = xml.responseXML; document.getElementById("demo").innerHTML = xmlDoc.documentElement.nodeName + "<br>" + xmlDoc.documentElement.nodeType; } </script> </body> </html>
Output :
Kode berikut mengulang melalui child node yang juga merupakan element node dari root node:
Contoh :
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); function myFunction(xml) { var x, i, xmlDoc, txt; xmlDoc = xml.responseXML; txt = ""; x = xmlDoc.documentElement.childNodes; for (i = 0; i < x.length; i++) { if (x[i].nodeType == 1) { txt += x[i].nodeName + "<br>"; } } document.getElementById("demo").innerHTML = txt; } </script> </body> </html>
Output :
Penjelasan Kode:
Kode berikut menavigasi node-tree menggunakan hubungan simpul:
Contoh :
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); function myFunction(xml) { var x, y, i, xlen, xmlDoc, txt; xmlDoc = xml.responseXML; x = xmlDoc.getElementsByTagName("book")[0]; xlen = x.childNodes.length; y = x.firstChild; txt = ""; for (i = 0; i < xlen; i++) { if (y.nodeType == 1) { txt += i + " " + y.nodeName + "<br>"; } y = y.nextSibling; } document.getElementById("demo").innerHTML = txt; } </script> </body> </html>
Output :
Penjelasan Kode :