Pengurai XML
Semua browser utama memiliki parser XML bawaan untuk mengakses dan memanipulasi XML.
Pengurai XML
XML DOM (Document Object Model) mendefinisikan properti dan metode untuk mengakses dan mengedit XML.
Namun, sebelum dokumen XML dapat diakses, dokumen tersebut harus dimuat ke dalam objek XML DOM.
Semua browser modern memiliki parser XML bawaan yang dapat mengonversi teks menjadi objek XML DOM.
Mengurai String Teks
Contoh ini mem-parsing string teks menjadi objek XML DOM, dan mengekstrak info darinya dengan JavaScript:
Contoh
<html>
<body>
<p id="demo"></p>
<script>
var text, parser, xmlDoc;
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
document.getElementById("demo").innerHTML =
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
</script>
</body>
</html>
Contoh Dijelaskan
Sebuah string teks didefinisikan:
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
Pengurai DOM XML dibuat:
parser = new DOMParser();
Parser membuat objek XML DOM baru menggunakan string teks:
xmlDoc = parser.parseFromString(text,"text/xml");
Versi Lama Internet Explorer
Versi lama Internet Explorer (IE5, IE6, IE7, IE8) tidak mendukung objek DOMParser.
Untuk menangani versi Internet Explorer yang lebih lama, periksa apakah browser mendukung objek DOMParser, atau buat ActiveXObject:
Contoh
if (window.DOMParser) {
// code for modern browsers
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
}
else {
// code for old IE browsers
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(text);
}
Objek XMLHttpRequest
Objek XMLHttpRequest memiliki XML Parser bawaan.
Properti responseText mengembalikan respons sebagai string.
Properti responseXML mengembalikan respons sebagai objek XML DOM.
Jika Anda ingin menggunakan respons sebagai objek XML DOM, Anda dapat menggunakan properti responseXML.
Contoh
Minta file cd_catalog.xml dan gunakan respons sebagai objek XML DOM:
xmlDoc = xmlhttp.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("ARTIST");
for (i = 0; i < x.length; i++) {
txt += x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;