在前面的两篇文章中主要就firefox,safari,opera,chrome浏览器中对DOM Level 3 XPath的实现进行介绍。IE8还没有实现DOM Level 3 XPath中定义的接口,但是它对xpath也有一定的支持,IE中的xpath功能主要对xml文档可用,对document的对象不可用。
在IE中生成xml文档的方法:
生成文档对象以后,可以使用loadXML()方法加载内容:
第二种方法通过XMLHttRequest对象进行请求生成xml对象。
第三种方法是使用<xml>标签,Microsoft把这种方法叫做xml数据岛,如下:
<xml id="myXML" src="data.xml"></xml>
然后:
var xmldoc = document.getElementById("myXML").XMLDocument;
XPath支持:
在ie中的xml文档对象对xpath进行支持有两个内置方法:
selectSingleNode() and selectNodes(),每个方法都接受xpath表达式作为参数,然后分别放回第一个匹配的节点和所有匹配的节点。
命名空间支持:
对于
<books xmlns:wrox="http://www.wrox.com/" xmlns="http://www.amazon.com/">
<wrox:book>Professional JavaScript</book>
</books>这段xml文档,我们应该使用下面的方法进行查询,即首先使用setProperty(),来设置xml文档的命名空间。
xmldoc.setProperty("SelectionNamespaces",
"xmlns:wrox='http://www.wrox.com/' xmlns='http://www.amazon.com/'");
var book = xmldoc.documentElement.selectSingleNode("wrox:book");