一、什么是Xpath
XPath即为XML路径语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言。
二、Xpath应用场景
Xpath主要用于解析XML文档,另外Xpath同样被selenium集成用于在HTML树形结构下定位上的相关对象。
三、Xpath表达式的基本写法
我们根据以下XML举例:
<A> <B id = "abc"> <C>12</C> <C>20</C> </B> <D> </D> </A> <E> <F> </F> </E>1.选择根元素A
/A选中的元素:A
2. 按层级结构选择A元素下的子元素B下的所有C元素
/A/B/C选中的元素:C
3.双斜杠表示选择文档中所有满足斜杠后的元素的条件
//C选中的元素:C
4. 星号表示任意元素
//B/*选中的元素:B元素的所有子元素
5.方括号可以作为下标,选择元素集中序号对应的元素
/A/B[1]选中的元素:
/A/B[last()]
6.字符@用于筛选相关元素的属性
//@id 选中文档中所有id
//B[not(@*)] 选中所有不含属性的元素
//B[@id = "abc"] 选中id为abc的元素
7.竖线表示或条件
//B|//C 选中的元素 B和C
8.添加筛选条件
/A/B/C/text() 输出的值为12和20
/A/B[C>15]/C 输出的值为第二个元素C
四、Xpath表达式扩展用法
1.normalize-space()去掉前后的空格
2.count() 计数
3.starts-with()以何字符开始
4.contains()包含字符串
5.descendant::后代元素
6.descendant-or-self::包含元素本身和后代元素
7.parent::父元素
8.ancestor-or-self::包含元素本身和父元素
9.ancestor::所有父节点(一定会包括根节点)
10.following-sibling::选中元素所有的下游兄弟节点
11.preceding-sibling::选中元素的所有上有兄弟节点
12.div运算符做浮点除法运算,mod运算符做求余运算,floor函数返回不大于参数的最大整数(趋近于正无穷),ceiling返回不小于参数的最小整数(趋近于负无穷)
13.following::选中节点之后的所有节点,除了祖先节点,属性节点和命名空间节点
14.preceding::选中节点之前的所有节点,属性节点和命名空间节点
15.position() 当前元素的位置