Xpath檔案表示式

2021-05-25 09:41:38 字數 3711 閱讀 8861

簡單說,

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例項文件。 [

例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常用表示式

我們將在下面的例子中使用這個 xml 文件。harry potter 29.99 learning xml 39.95 xpath 使用路徑表示式在 xml 文件中選取節點。節點是通過沿著路徑或者 step 來選取的。表示式描述 nodename 選取此節點的所有子節點 從根節點擊取 從匹配選擇的當...

Xpath路徑表示式

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