Xpath 简介
xpath是一种在xml中查找信息的语言, 它是W3C XSLT标准的主要元素, 利用它可以查找遍历元素及元素属性。
xpath 语法
xpath 利用路径表达式选取节点元素或者节点属性。路径表达式类似于文件路径,通过路径定位到指定元素。
xml 介绍
xml 实例: “books.xml” :
|
|
在上面的xml实例中,
用xpath选取xml节点
- 之前介绍过xpath利用路径表达式选取节点, 下面列出比较常用的路径:
表达式 | 含义 |
---|---|
nodename | 选取节点的所有 |
/ | 从根节点选取 |
// | 从任何节点选取 |
. | 选取当前节点 |
.. | 选取当前节点的父节点 |
@ | 选取属性 |
- 针对以上xml实例, 举例说明路径表达式的使用:
路径表达式 | 结果 |
---|---|
bookstore | 选取包含bookstore在内的所有 |
/bookstore | 选取根元素 |
bookstore/book | bookstore下的所有book元素节点及其子节点 |
//book | 所有book元素及其子元素 |
//book/title[@lang] | 选取有lang属性的title节点 |
//@lang | 选取属性为lang的所有元素属性 |
- 根据筛选条件选取元素:
路径表达式 | 结果 |
---|---|
bookstore/book[last()] | 选取最后一个book节点及其子节点 |
//book[1] | 选取第一个book节点及其子节点 |
//book[position() < 4] | 选取前三个book节点及其子节点 |
bookstore/book[price > 40] | 选取价格大于40的book节点及其子节点 |
- js中使用xpath解析xml文档
现在大多数浏览器使用XMLHttpRequest加载xml,加载xml工具的方式如下:
|
|
但是比较古老的浏览器,如IE5、IE6 采用如下方式加载xml工具:
|
|
在js中利用xpath解析xml时, IE浏览器 跟其他浏览器方式不同, 所以需要判断客户端浏览器分情况解析xml:
|
|
Xpath测试工具
推荐一个很实用的xpath测试工具:XPathTester