Trình phân tích cú pháp XML
Tất cả các trình duyệt chính đều có trình phân tích cú pháp XML tích hợp sẵn để truy cập và thao tác với XML.
Trình phân tích cú pháp XML
DOM XML (Mô hình Đối tượng Tài liệu) xác định các thuộc tính và phương pháp để truy cập và chỉnh sửa XML.
Tuy nhiên, trước khi một tài liệu XML có thể được truy cập, nó phải được tải vào một đối tượng XML DOM.
Tất cả các trình duyệt hiện đại đều có trình phân tích cú pháp XML tích hợp có thể chuyển đổi văn bản thành một đối tượng DOM XML.
Phân tích cú pháp một chuỗi văn bản
Ví dụ này phân tích cú pháp một chuỗi văn bản thành một đối tượng DOM XML và trích xuất thông tin từ nó bằng JavaScript:
Thí dụ
<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>
Giải thích ví dụ
Một chuỗi văn bản được xác định:
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
Một trình phân tích cú pháp DOM XML được tạo:
parser = new DOMParser();
Trình phân tích cú pháp tạo một đối tượng DOM XML mới bằng cách sử dụng chuỗi văn bản:
xmlDoc = parser.parseFromString(text,"text/xml");
Phiên bản cũ của Internet Explorer
Phiên bản cũ của Internet Explorer (IE5, IE6, IE7, IE8) không hỗ trợ đối tượng DOMParser.
Để xử lý các phiên bản cũ hơn của Internet Explorer, hãy kiểm tra xem trình duyệt có hỗ trợ đối tượng DOMParser hay không, nếu không hãy tạo một ActiveXObject:
Thí dụ
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);
}
Đối tượng XMLHttpRequest
Đối tượng XMLHttpRequest được tích hợp sẵn Trình phân tích cú pháp XML.
Thuộc tính responseText trả về phản hồi dưới dạng một chuỗi.
Thuộc tính responseXML trả về phản hồi dưới dạng đối tượng DOM XML.
Nếu bạn muốn sử dụng phản hồi như một đối tượng DOM XML, bạn có thể sử dụng thuộc tính responseXML.
Thí dụ
Yêu cầu tệp cd_catalog.xml và sử dụng phản hồi làm đối tượng DOM XML:
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;