標籤:des blog http ar 使用 sp on log html
XPath 是一門在 XML 文檔中尋找資訊的語言。XPath 可用來在 XML 文檔中對元素和屬性進行遍曆。
XPath 是 W3C XSLT 標準的主要元素,並且 XQuery 和 XPointer 同時被構建於 XPath 表達之上。
推薦一個挺不錯的網站:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html 裡面有很不錯的例子,下面的例子中紅色字型表示使用對應文法擷取的元素(或屬性)。
XPath軸(XPath Axes)可定義某個相對於當前節點的節點集:
1、child 選取當前節點的所有子項目
2、parent 選取當前節點的父節點
3、descendant 選取當前節點的所有後代元素(子、孫等)
4、ancestor 選取當前節點的所有先輩(父、祖父等)
5、descendant-or-self 選取當前節點的所有後代元素(子、孫等)以及當前節點本身
6、ancestor-or-self 選取當前節點的所有先輩(父、祖父等)以及當前節點本身
7、preceding-sibling 選取當前節點之前的所有同級節點
8、following-sibling 選取當前節點之後的所有同級節點
9、preceding 選取文檔中當前節點的開始標籤之前的所有節點
10、following 選取文檔中當前節點的結束標籤之後的所有節點
11、self 選取當前節點
12、attribute 選取當前節點的所有屬性
13、namespace 選取當前節點的所有命名空間節點
parent軸是選取當前節點父節點,下面看簡單樣本:
//DDD/parent::* 擷取所有節點DDD的父節點
<AAA>
<BBB>
<DDD>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</BBB>
<CCC>
<DDD>
<EEE>
<DDD>
<FFF/>
</DDD>
</EEE>
</DDD>
</CCC>
</AAA>
/AAA/BBB/parent::* 得到根節點AAA,這樣寫在實際中沒有意義。
<AAA>
<BBB>
<DDD>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</BBB>
<CCC>
<DDD>
<EEE>
<DDD>
<FFF/>
</DDD>
</EEE>
</DDD>
</CCC>
</AAA>
/AAA/parent::* 根節點無法擷取到parent
<AAA>
<BBB>
<DDD>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</BBB>
<CCC>
<DDD>
<EEE>
<DDD>
<FFF/>
</DDD>
</EEE>
</DDD>
</CCC>
</AAA>
XPath學習:parent,child