文章目录
什么是 XPath?
XPath即为XML路径语言,它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
- XPath 使用路径表达式在 XML 文档中进行导航
- XPath 包含一个标准函数库
- XPath 是 XSLT (扩展样式表转换语言)中的主要元素
- XPath 是一个 W3C 标准
XPath 标准函数
- XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值,日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。
- w3c要求所有支持XPath的工具都要实现核心函数集
核心函数集:
函数说明索引:
https://docs.microsoft.com/en-us/previous-versions//ms256138%28v%3dvs.85%29
http://www.w3school.com.cn/xpath/xpath_functions.asp
XPath 术语 之 节点(Node)
在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。
节点关系
- 父(Parent)
每个元素以及属性都有一个父。 - 子(Children)
元素节点可有零个、一个或多个子。 - 同胞(Sibling)
拥有相同的父的节点 - 先辈(Ancestor)
某节点的父、父的父,等等。 - 后代(Descendant)
某个节点的子,子的子,等等。
XPath 语法
- XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。
- 下面将从下面几个方面来介绍:
- 选取节点
- 谓语(Predicates)
- 选取未知节点
- 选取若干路径
一个XML文档实例
选取节点 之 最常用的路径表达式
选取节点 之 实例
注意: 不带/或//开头的表示从“当前路径”开始,这个当前路径一般就是根节点。
比如上例,book/title
会报找不到元素的错误;应该使用//book/title
,无论book元素有一个还是多个。
谓语(Predicates)
- 谓语用来查找某个特定的节点或者包含某个指定的值的节点。
- 谓语被嵌在方括号中。
选取未知节点 之 符号
选取未知节点 之 实例
选取若干路径 之 实例
通过在路径表达式中使用“|”运算符,您可以选取若干个路径。
XPath Axes(坐标轴)
XPath Axes(坐标轴)
位置路径表达式
- 位置路径可以是绝对的,也可以是相对的。
- 绝对路径起始于正斜杠( / ),而相对路径不会这样。在两种情况中,位置路径均包括一个或多个步,每个步均被斜杠分割:
- 绝对位置路径:
/step/step/… - 相对位置路径:
step/step/… - 每个步均根据当前节点集之中的节点来进行计算。
步(step)包括:
- 轴(axis)
定义所选节点与当前节点之间的树关系 - 节点测试(node-test)
识别某个轴内部的节点 - 零个或者更多谓语(predicate)
更深入地提炼所选的节点集 - 步的语法:
轴名称::节点测试[谓语]