XML Parser
เบราว์เซอร์หลักทั้งหมดมีตัวแยกวิเคราะห์ XML ในตัวเพื่อเข้าถึงและจัดการ XML
XML Parser
XML DOM (Document Object Model)กำหนดคุณสมบัติและวิธีการในการเข้าถึงและแก้ไข XML
อย่างไรก็ตาม ก่อนเข้าถึงเอกสาร XML จะต้องโหลดเอกสารนั้นลงในวัตถุ XML DOM
เบราว์เซอร์ที่ทันสมัยทั้งหมดมีตัวแยกวิเคราะห์ XML ในตัวที่สามารถแปลงข้อความเป็นวัตถุ XML DOM
การแยกวิเคราะห์สตริงข้อความ
ตัวอย่างนี้แยกวิเคราะห์สตริงข้อความเป็นอ็อบเจ็กต์ XML DOM และดึงข้อมูลจากมันด้วย JavaScript:
ตัวอย่าง
<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>
ตัวอย่างที่อธิบาย
สตริงข้อความถูกกำหนด:
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
สร้างตัวแยกวิเคราะห์ XML DOM:
parser = new DOMParser();
parser สร้างวัตถุ XML DOM ใหม่โดยใช้สตริงข้อความ:
xmlDoc = parser.parseFromString(text,"text/xml");
Internet Explorer เวอร์ชันเก่า
Internet Explorer เวอร์ชันเก่า (IE5, IE6, IE7, IE8) ไม่สนับสนุนวัตถุ DOMParser
ในการจัดการ Internet Explorer เวอร์ชันเก่า ให้ตรวจสอบว่าเบราว์เซอร์สนับสนุนวัตถุ DOMParser หรือสร้าง ActiveXObject:
ตัวอย่าง
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);
}
วัตถุ XMLHttpRequest
วัตถุXMLHttpRequestมีตัวแยกวิเคราะห์ XML ในตัว
คุณสมบัติresponseTextส่งกลับการตอบกลับเป็นสตริง
คุณสมบัติresponseXMLส่งคืนการตอบสนองเป็นอ็อบเจ็กต์ XML DOM
หากคุณต้องการใช้การตอบกลับเป็นวัตถุ XML DOM คุณสามารถใช้คุณสมบัติ responseXML
ตัวอย่าง
ขอไฟล์cd_catalog.xmlและใช้การตอบสนองเป็นอ็อบเจ็กต์ 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;