Xpath基本用法详解

一、什么是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[@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() 当前元素的位置

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念