1. 什么是XPath
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。
因此,对 XPath 的理解是很多高级 XML 应用的基础。
W3School官方文档:http://www.w3school.com.cn/xpath/index.asp
2. XPath的节点关系
2.1 XPath中的节点是什么
- 每个XML的标签我们都称之为节点,其中最顶层的节点称为根节点。

3. XPath中节点选择的工具
Chrome浏览器插件: XPath Helper
下载地址:https://pan.baidu.com/s/1UM94dcwgus4SgECuoJ-Jcg 密码:337b
Firefox浏览器插件:xPath Finder
注意: 这些工具是用来学习XPath语法的,当熟练掌握XPath的语法后就可以直接在代码中编写XPath而不一定非要用此工具。
4. XPath语法
- 我们将在下面的例子中使用这个 XML 文档
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
4.1 选取节点
XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
使用chrome插件选择标签时候,选中是时,选中的标签会添加属性class=“xh-highlight”
- 下面列出了最有用的表达式:
| 表达式 | 描述 |
|---|---|
| nodename | 选中该元素 |
| / | 从根节点选取、或者是元素和元素间的过渡 |
| // | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 |
| . | 选取当前节点 |
| .. | 选取当前节点的父节点 |
| @ | 选取属性 |
| text() | 选取文本 |
- 实例(对应上面的表达式):
| 表达式 | 描述 |
|---|---|
| bookstore | 选择bookstore元素 |
| /bookstore | 选取跟元素bookstore。注:假如路径起始于正斜杠(/),则此路径始终代表到某元素的绝对路径! |
| bookstore/book | 选取属于bookstore的子元素的所有book元素 |
| //book | 选取所有book子元素,而不管它们在文档中的位置 |
| bookstore//book | 选取bookstore元素的后代的所有book元素,而不管它们位于bookstore之下的什么位置 |
| //book/title/@lang | 选择所有的book下面的title中的lang属性的值 |
| //book/title/text() | 选择所有的book下面的title的文本 |