您好,登錄后才能下訂單哦!
本篇內容介紹了“如何理解XPath表達式語法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
XPath即為XML路徑語言,它是一種用來確定XML(標準通用標記語言的子集)文檔中某部分位置的語言。XPath基于XML的樹狀結構,提供在數(shù)據(jù)結構樹中找尋節(jié)點的能力。XPath使用路徑表達式去確定XML文檔中的節(jié)點。
我們將利用下面的XML文檔描述XPath語法
<?xml version="1.0" encoding="GB2312"?> <order> <item catalog="parts"> <itemNumber>C2688-67037</itemNumber> <description>LCD液晶顯示器</description> <quantity>1</quantity> <price>358.00</price> </item> <item catalog="parts"> <itemNumber>C2688-67061</itemNumber> <description>音箱</description> <quantity>1</quantity> <price>16.50</price> </item> <item catalog="parts"> <itemNumber>C2688-67010</itemNumber> <description>鼠標</description> <quantity>1</quantity> <price>8.50</price> </item> </order>
XML文擋可以表示為樹結構節(jié)點形式 XPath使用模式表達式識別XML文檔的節(jié)點。 一個XPath的模式是使用反斜杠“/”分開子元素名稱描述路徑 下面的XPath表達式選擇元素order下元素item中的所有price元素
/order/item/price
注釋:用“/”路徑開始代表元素的絕對路徑,不用“/”路徑開始代表元素的相對路徑
item/price
用“//”路徑開始代表整個文檔滿足條件的所有元素,不考慮它們的位置 下面的XPath表達式選擇文檔中所有的item元素
//item
通配符 “*”可用于選擇未知XML元素 下面的XPath表達式選擇元素order中的所有item元素所屬的子元素
/order/item/*
下面的XPath表達式選擇元素order下所有孫子輩的price元素
/order/*/price
下面的XPath表達式選擇所有具有兩個祖先的price元素
///price
下面的XPath表達式選擇文檔所有元素
//*
使用方括號[]可以指定特定的元素 下面的XPath表達式選擇元素order中的第一個item的子元素
/order/item[1]
下面的XPath表達式選擇元素order中的最后一個item的子元素
/order/item[last()]
下面的XPath表達式選擇元素order中具有price元素的item元素
/order/item[price]
下面的XPath表達式,從元素order中選擇具有price等于12.60元素的item元素
/order/item[price=16.50]
下面的XPath表達式,從隸屬于元素order的item元素中選擇具有price等于12.60元素的price元素
/order/item[price=16.50]/price
在XPath表達式中,使用 "|" 運算符可以選擇幾個路徑 。實質上是邏輯“與”操作 下面的XPath表達式,從隸屬于order的item元素中選擇所有itemNumber 和description 元素
/order/item/itemNumber | /order/item/description
下面的XPath表達式,從文檔中選擇所有itemNumber 和description 元素
//itemNumber | //description
下面的XPath表達式,從文檔中選擇所有itemNumber ,description和price 元素
//itemNumber | //description | //price
下面的XPath表達式,選取屬于order中item下所有itemNumber元素和從文檔中選擇所有description元素
/order/item/itemnumber | //description
在XPath中,所有屬性使用@前綴 下面的XPath表達式,選取所有名為catalog的屬性
//@catalog
下面的XPath表達式,選取所有具有catalog屬性的item元素
//item[@catalog]
下面的XPath表達式,選取所有具有任何屬性的item元素
//item[@*]
下面的XPath表達式,選取所有具有catalog等于"parts"屬性的item元素
//item[@catalog="parts"]
(1)選取節(jié)點 下面列出了最有用的路徑表達式:
表達式 | 描述 |
---|---|
nodename | 選取此節(jié)點的所有子節(jié)點。 |
/ | 從根節(jié)點選取。 |
// | 從匹配選擇的當前節(jié)點選擇文檔中的節(jié)點,而不考慮它們的位置。 |
. | 選取當前節(jié)點。 |
.. | 選取當前節(jié)點的父節(jié)點。 |
@ | 選取屬性。 |
(2)謂語(Predicates) 謂語用來查找某個特定的節(jié)點或者包含某個指定的值的節(jié)點。 謂語被嵌在方括號[]中。 (3)選取未知節(jié)點 XPath 通配符可用來選取未知的 XML 元素。
通配符 | 描述 |
---|---|
* | 匹配任何元素節(jié)點。 |
@* | 匹配任何屬性節(jié)點。 |
node() | 匹配任何類型的節(jié)點。 |
(4)選取若干路徑 通過在路徑表達式中使用“|”運算符,您可以選取若干個路徑。 更多有關XPath語法規(guī)則請訪問W3CSchool。
“如何理解XPath表達式語法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。