節點(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)]