Xpath路徑表示式

2021-06-15 01:19:38 字數 2833 閱讀 5744

原文**:

簡單說,xpath就是選擇xml檔案中節點的方法。

所謂節點(node),就是xml檔案的最小構成單位,一共分成7種。

- element(元素節點)

- attribute(屬性節點)

- text (文字節點)

- namespace (命名空間節點)

- processing-instruction (處理命令節點)

- comment (注釋節點)

- root (根節點)

xpath可以用來選擇這7種節點。不過,下面的筆記只涉及最常用的第一種element(元素節點),因此可以將下文中的節點和元素視為同義詞。

一、xpath表示式的基本格式

xpath通過「路徑表示式」(path expression)來選擇節點。在形式上,「路徑表示式」與傳統的檔案系統非常類似。

# 斜槓(/)作為路徑內部的分割符。

# 同乙個節點有絕對路徑和相對路徑兩種寫法。

# 絕對路徑(absolute path)必須用「/」起首,後面緊跟根節點,比如/step/step/...。

# 相對路徑(relative path)則是除了絕對路徑以外的其他寫法,比如 step/step,也就是不使用「/」起首。

# 「.」表示當前節點。

# 「..」表示當前節點的父節點

二、選擇節點的基本規則

- nodename(節點名稱):表示選擇該節點的所有子節點

- 「/」:表示選擇根節點

- 「//」:表示選擇任意位置的某個節點

- 「@」: 表示選擇某個屬性

三、選擇節點的例項

先看乙個xml例項文件。

<?xml version="1.0" encoding="iso-8859-1"?>

harry potter

29.99

learning xml

39.95

[例1]

bookstore :選取 bookstore 元素的所有子節點。

[例2]

/bookstore :選取根節點bookstore,這是絕對路徑寫法。

[例3]

bookstore/book :選取所有屬於 bookstore 的子元素的 book元素,這是相對路徑寫法。

[例4]

//book :選擇所有 book 子元素,而不管它們在文件中的位置。

[例5]

bookstore//book :選擇所有屬於 bookstore 元素的後代的 book 元素,而不管它們位於 bookstore 之下的什麼位置。

[例6]

//@lang :選取所有名為 lang 的屬性。

四、xpath的謂語條件(predicate)

所謂「謂語條件」,就是對路徑表示式的附加條件。

所有的條件,都寫在方括號「」中,表示對節點進行進一步的篩選。

[例7]

/bookstore/book[1] :表示選擇bookstore的第乙個book子元素。

[例8]

/bookstore/book[last()] :表示選擇bookstore的最後乙個book子元素。

[例9]

/bookstore/book[last()-1] :表示選擇bookstore的倒數第二個book子元素。

[例10]

/bookstore/book[position()<3] :表示選擇bookstore的前兩個book子元素。

[例11]

//title[@lang] :表示選擇所有具有lang屬性的title節點。

[例12]

//title[@lang='eng'] :表示選擇所有lang屬性的值等於「eng」的title節點。

[例13]

/bookstore/book[price] :表示選擇bookstore的book子元素,且被選中的book元素必須帶有price子元素。

[例14]

/bookstore/book[price>35.00] :表示選擇bookstore的book子元素,且被選中的book元素的price子元素值必須大於35。

[例15]

/bookstore/book[price>35.00]/title :表示在例14結果集中,選擇title子元素。

[例16]

/bookstore/book/price[.>35.00] :表示選擇值大於35的「/bookstore/book」的price子元素。

五、萬用字元

# 「*」表示匹配任何元素節點。

# 「@*」表示匹配任何屬性值。

# node()表示匹配任何型別的節點。

[例17]

//* :選擇文件中的所有元素節點。

[例18]

/*/* :表示選擇所有第二層的元素節點。

[例19]

/bookstore/* :表示選擇bookstore的所有元素子節點。

[例20]

//title[@*] :表示選擇所有帶有屬性的title元素。

六、選擇多個路徑

用「|」選擇多個並列的路徑。

[例21]

//book/title | //book/price :表示同時選擇book元素的title子元素和price子元素。

Xpath路徑表示式

簡單說,xpath就是選擇xml檔案中節點的方法。所謂節點 node 就是xml檔案的最小構成單位,一共分成7種。element 元素節點 attribute 屬性節點 text 文字節點 namespace 命名空間節點 processing instruction 處理命令節點 comment ...

XPath路徑表示式

xpath是全球資訊網聯盟 w3c 的官方推薦。它定義了乙個語言在xml檔案中查詢資訊。它被用於遍歷xml文件的元素和屬性。xpath提供各種型別,可用於從xml文件查詢相關的資訊表現形式。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 x...

xpath路徑表示式筆記

日期 2009年7月 6日 簡單說,xpath就是選擇xml檔案中節點的方法。所謂節點 node 就是xml檔案的最小構成單位,一共分成7種。element 元素節點 attribute 屬性節點 text 文字節點 namespace 命名空間節點 processing instruction 處...