XML 解析器

所有主流浏览器都有内置的 XML 解析器,用于访问和操作 XML。

解析器把 XML 转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象。

XML 解析器

XML DOM(文档对象模型)定义了用于访问和编辑 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>雅舍谈吃</title>" +
"<author>梁实秋</author>" +
"<year>2013</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>雅舍谈吃</title>" +
"<author>梁实秋</author>" +
"<year>2013</year>" +
"</book></bookstore>";

创建 XML DOM 解析器:

parser = new DOMParser();

解析器使用这个文本字符串创建了一个新的 XML DOM 对象:

xmlDoc = parser.parseFromString(text,"text/xml");

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;

亲自试一试