节点(Node):7种类型:元素,属性,文本,命名空间,处理命令,注释,文档(根)节点node
父(Parent),子(Children),同胞(Sibling),先辈(Ancestor),后代(Descendant)测试
nodename 节点名,选取此节点的全部子节点 例: childnode 当前节点中的childnode子节点,不包含孙子及如下的节点spa
/ 从根节点选取 例:/root/childnode/grandsonnode文档
// 表示全部后代节点 例://childnode 全部名为childnode的后代节点it
. 表示当前节点 例: ./childnode 表示当前节点的childnode节点io
.. 表示父节点 例: ../nearnode 表示父亲节点的nearnode子节点ast
@ 选取属性 /root/childnode/@id 表示childnode的全部含有id属性的节点集class
谓语能够对节点集进行一些限制,使选择更精确命名空间
/root/book[1] 节点集中的第一个节点命名
/root/book[last()] 节点集中最后一个节点
/root/book[position() - 1] 节点集中倒数第二个节点集
/root/book[position() < 5] 节点集中前五个节点集
/root/book[@id] 节点集中含有属性id的节点集
/root/book[@id='chinese'] 节点集中id属性值为chinese的节点集
/root/book[price > 35]/title 节点集中book的price元素值大于35的title节点集
XPath路径中一样支持通配符(*,@*,node(), text())
例: /bookstore/*
//title[@*]
定义相对于当前节点的节点集
ancestor 全部祖先节点
attribute 全部属性节点
child 全部子元素
descendant 全部后代节点(子,孙。。。)
following 结束标记后的全部节点 preceding 开始标记前的全部节点
following-sibling 结束标记后的全部同胞节点
preceding-sibling 开始标记前的全部同胞节点
namespace 当前命名空间的全部节点
parent 父节点
self 当前节点
用法:轴名称::节点测试[谓语]
例: ancestor::book
child::text()
| 两个节点集的合并 例:/root/book[1] | /root/book[3]
+,-,*,dev,mod
=,!=,<,>,<=,>=
or,and 或和与
多个属性条件查询 //div[@align='center' and @height='24']
不存在class属性 //div[not(@class)]