上一篇介绍了XML的结构以及节点之间的关系这一篇介绍浏览器内建的XML解析器以及Javascript是如何加载XML的。
大多数浏览器都有读取和操作 XML 的内建 XML 解析器。
解析器(XML Parser)把 XML 转换为 JavaScript 可访问的对象。
解析器把 XML 载入内存,然后把它转换为可通过 JavaScript 访问的 XML DOM 对象。
微软的 XML 解析器与其他浏览器中的解析器之间,存在一些差异。微软的解析器支持 XML 文件和 XML 字符串(文本)的加载,而其他浏览器使用单独的解析器。不过,所有的解析器都包含遍历 XML 树、访问插入及删除节点(元素)及其属性的函数。
Note:当我们谈及 XML 解析,我们常常会使用有关 XML 元素的术语:节点。
微软的 XML 解析器内建于 Internet Explorer 5 以及更高的版本中。
下面的 JavaScript 片段把一个 XML 文档载入解析器中:
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.load("note.xml");
下面的 JavaScript 片段把字符串 txt 载入解析器:
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.loadXML(txt);
注释:loadXML()方法用于加载字符串(文本),load()用于加载文件。
下面的 JavaScript 片段把 XML 文档 ("note.xml") 载入解析器:
var xmlDoc=document.implementation.createDocument("","",null);xmlDoc.async="false";xmlDoc.load("note.xml");
下面的 JavaScript 片段把字符串 txt 载入解析器:
var parser=new DOMParser();var xmlDoc=parser.parseFromString(txt,"text/xml");
注释:DOMParser对象的parseFromString()方法用于加载字符串(文本),load()用于加载文件。
出于安全方面的原因,现代的浏览器不允许跨域的访问。
假如你打算在自己的网页上使用上面的例子,则必须把 XML 文件放到自己的服务器上。否则,xmlDoc.load() 将产生错误 "access is denied"。
新闻热点
疑难解答