[精]Xpath路徑表達式


Xpath學習筆記

1.       /AAA:選擇根元素AAA

2.       //BBB:所有BBB元素

3.       /AAA/CCC/DDD/*:選擇/AAA/CCC/DDD/下所有元素

4.       /*/*/*/BBB:選擇有3個祖先元素的BBB元素

5.       //*:選擇所有元素

6.       /AAA/BBB[1]:選擇AAA的第一個BBB子元素

7.       //@ID:選擇所有的ID屬性;//BBB[@ID]:選擇有ID屬性的BBB元素;//BBB[@*]:選擇有任意屬性的BBB元素;//BBB[not (@*)]:選擇沒有屬性的BBB元素

8.       //BBB[normalize-space(@name)=’bbb’] :選擇含有name且值(用mormalize-space去掉前后空格)為‘bbb’的BBB元素

9.       //*[count(BBB)=2]:選擇含有2個BBB子元素的元素;//*[count(*)=2];

10.    Name():返回元素名稱;start-with():第一個參數是以第二個參數為開始的為TRUE;contains():第一個參數包含第二個參數時為true;例:

1)         //*[name()=’BBB’]:名稱為BBB的元素

2)         //*[starts-with(name(),’B’)]:所有名稱為B起始的元素

3)         //*[contains(name(),’C’)]:所有名稱包含C的元素

11.    |:多個路徑合並在一起。例://CCC|//BBB:選擇所有的CCC和BBB元素;

12.    Child軸:

1)         /AAA:等價於/child::AAA

2)         /AAA/BBB:等價於/child::AAA/child::BBB等價於/child:AAA/BBB

13.    Descendant后代軸:不會包含屬性和命名空間節點
/descendant::*:選擇文檔根元素的所有后代,即所有的元素被選擇

/AAA/BBB/descendant::*:選擇/AAA/BBB的所有后代元素

//CCC/descendant::*:選擇在祖先元素中有CCC的所有元素

//CCC/descendant::DD:選擇所有以CCC為祖先元素的DDD元素

14.    Parent軸:包含上下文節點的父節點。

//DDD/parent::*:選擇DDD元素的所有父節點

15.    Ancestor軸:包含上下節點的祖先節點,由父節點以及父節點的父節點等構成,所以總是包含根節點,除非上下文節點就是根節點本身。

/AAA/BBB/DDD/CCC/EEE/ancestor::*:選擇一個絕對路徑上的所有節點

//FFF/ancestor::*:選擇FFF元素的祖先節點

16.    Following-sibling軸:上下文節點之后的所有兄弟節點

/AAA/BBB/following-sibling::*

17.    Preceding-sibling軸:包含上下文節點之前的所有兄弟節點

/AAA/XXX/preceding-sibling::*:

18.    Following軸:包含同一文檔中按文檔順序位於上下文節點之后的所有節點,除了祖先節點,屬性節點和命名空間節點

/AAA/XXX/following::*

19.    preceding 軸(axis)包含同一文檔中按文檔順序位於上下文節點之前的所有節點, 除了祖先節點,屬性節點和命名空間節點,如/AAA/XXX/preceding::*

20.    descendant-or-self軸:包含上下文節點本身和該節點的后代節點,如:/AAA/XXX/descendant-or-self::*

21.    ancestor-or-self軸:包含上下文節點本身和該節點的祖先節點

22.    ancestor, descendant, following, preceding 和self軸(axis)分割了XML文檔(忽略屬性節點和命名空間節點), 不能交迭, 而一起使用則包含所有節點,例://GGG/ancestor::*

23.    div運算符做浮點除法運算, mod運算符做求余運算, floor 函數返回不大於參數的最大整數(趨近於正無窮), ceiling 返回不小於參數的最小整數(趨近於負無窮) ,例:

1)         //BBB[position() mod 2 = 0 ];

2)         //CCC[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]

24.   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM