一、XPath基本語法
1、XPath起步步驟
XPath是通過路徑表達式來選取XML文檔中的節點或節點集的,XPath有7種基本的路徑表達式,包括節點選擇、屬性選擇、位置選擇、邏輯運算符、數值運算符、字元串函數、數值函數等。
// 代表選擇根節點 / 代表選擇根節點下的直接子節點 descendant:: 選取從當前節點開始所有子孫節點 .. 選取當前節點的父節點 @ 選取某個屬性的值 例子: //bookstore/book[1]:選取第一個book元素節點
2、XPath運算符
XPath運算符主要包括節點比較運算、字元串比較運算、邏輯運算、數值運算等。
節點比較運算: =, !=, <, , >= 字元串比較運算: =, !=, <, , >=, contains() 邏輯運算: and, or, not 數值運算: +, -, *, div, mod 例子: //bookstore/book[price>35.00]: 選取bookstore下的所有book元素節點中,price大於35.00的節點。
二、XPath選取節點
1、XPath選取節點類型
XPath中節點類型主要包括元素節點、屬性節點、文本節點、命名空間節點等。
選取元素節點: //+元素名:選取所有該元素名的節點 / 子節點:選取該節點的直接子節點 選取屬性節點: //@屬性名:選取該屬性名的所有屬性節點
2、XPath謂語的使用
謂語是用來限定查找範圍的,一般包含在[]之中,可以使用一些運算符和函數對選取的節點作出進一步的限制。
例如://*[@lang='cn']:選取lang屬性為cn的所有元素節點。
三、XPath選取文本節點
1、XPath選取文本節點的方法
XPath選取文本節點主要通過text()函數實現。
例如://bookstore/book[3]/title/text():選取bookstore下的第3個book元素節點的title子節點的文本值。
2、XPath選取多個文本節點的方法
XPath選取多個文本節點的方法主要是通過使用|運算符實現。
例如://bookstore/book/title | //bookstore/book/author:選取bookstore下的所有book元素節點的title和author子節點的文本值。
四、XPath選取節點屬性
1、XPath選取屬性節點的方法
XPath選取屬性節點主要是通過使用@屬性名的形式實現。
例如://bookstore/book[1]/@category:選取bookstore下的第1個book元素節點的category屬性值。
2、XPath選取多個屬性節點的方法
與選取多個文本節點類似,XPath選取多個屬性節點的方法主要是通過使用|運算符實現。
例如://bookstore/book[@lang='en' or @lang='cn']/@category | //bookstore/book/title:選取lang屬性為en或cn的所有book元素節點的category屬性值和所有title子節點的文本值。
五、XPath函數
1、XPath函數的定義
XPath函數是用來處理查找結果和其他值得函數,通過函數名和參數列表調用,可以將結果進一步加工和處理。
常用的函數有: count(), sum(), concat(), substring(), contains(), floor(), round()等。 例如:count(//bookstore/book):選取bookstore下的所有book元素節點的數量。
2、XPath函數與運算符的聯合使用
XPath函數和運算符的聯合使用可以實現更加強大的功能,例如查找某一類型的節點中特定的文本值等。
例如://bookstore/book[contains(title, 'Harry Potter')]/price:選取title中包含Harry Potter的所有book元素節點的price子節點的文本內容。
六、XPath軸
1、XPath軸的介紹
XPath軸是一組預定義的節點集合,包括了當前節點、父節點、子節點和兄弟節點等,在XPath中使用軸可以對節點進行更加靈活的定位。
常用的軸有: self, parent, child, descendant, following-sibling, preceding-sibling等。
2、XPath軸的語法
XPath軸的語法是在選取節點時添加軸名稱和分隔符「::」,例如:axis::nodetype。
例如:ancestor::book:選取當前節點的祖先節點中所有book元素節點。
七、XPath運用場景和注意事項
1、XPath的運用場景
XPath可以用於處理XML數據和HTML數據,便於對數據進行定位和提取,廣泛應用於Web數據挖掘、自然語言處理等領域。
2、XPath的注意事項
在XPath使用過程中需要注意元素和屬性的大小寫區分問題,避免出現錯誤。
同時,XPath路徑表達式不應該過於冗長,否則會降低執行效率,應該結合具體情況進行優化。
八、代碼示例
Example
原創文章,作者:BFDMY,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/331587.html