XPath 是一种节点查找手段。它比使用 标准DOM 去查找 XML 节点更加方便、更加简单。但是 XPath 是 DOM3 中才支持的标准,并且 IE 有自己的实现方式。(IE总是自己造马车)
IE中的XPath
IE 提供了两种方法:
1、selectSingleNode() 获取单一节点
2、selectNodes() 获取节点集合
W3C中的XPath
在 DOM3 中 XPath 规范中,最重要的两个类型是 XPathEvaluator 和 XPathResult 。其中 XPathEvaluator 用于在特定上下文对 XPath 表达式求值。
XPathEvaluator 方法一共需要传递五个参数:
1.XPath路径; 2.上下文节点; 3.命名空间求解器(null); 4.返回结果类型; 5.保存结果的 XPath 对象(null);
获取成功就返回对应的类型值,获取失败返回 null。
返回的结果类型一共有十种,常用的就两种:
常量 | 值 |
---|---|
XPathResult_FIRST_ORDERED_NODE_TYPE | 返回单一节点 |
XPathResult_ORDERED_NODE_ITERATOR_TYPE | 返回节点集合 |
获取单一节点
|
|
获取节点集合
获取的时候只需要把返回值的类型修改为 获取节点集合 即可。
得到的节点集合需要用 iterateNext() 方法使用迭代方法存入一个数组。这样就可以对数据进行操作了。
XPath 常用语法
XML加载之后就可以使用标准DOM来进行各种操作,比如上面的返回 tagName 。当然 XPath 也提供了一套方法:(这里只列举最常用的)
1、相同标签问题
IE中下标从 0 开始!! W3C中下标从 1 开始!!
2、获取元素内文本
3、跨结构查找(不关心结构层次)
4、通过属性查找
跨浏览器兼容
鉴于IE中的相对功能较少,首先考虑 W3C。
获取单一节点
|
|
获取节点集合
|
|