XML Parser

XML Parser

所有主要的浏览器都有一个内置的XML解析器来访问和操作XML。

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>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>

示例解释

解析操作都需要使用javascript,首先我们看定义的一个字符串变量。

text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";

其次,通过以下js创建XML Dom解析对象。

paser = new DOMParser();

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

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

该方法接收 2 个必要参数:

mimeType doc.constructor
text/html Document
text/xml XMLDocument
application/xml XMLDocument
application/xhtml+xml XMLDocument
image/svg+xml XMLDocument

兼容IE的旧版本

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); 
} 

跨域访问

出于安全方面的原因,现代的浏览器不允许跨域的访问。

这意味着,网页以及它试图加载的 XML 文件,都必须位于相同的服务器上。

XML DOM

在下一章中,您将学习如何访问 XML DOM 对象并取回数据。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/59673.html

(0)
上一篇 2021年8月10日
下一篇 2021年8月10日

相关推荐

发表回复

登录后才能评论