我也剛剛學不久,希望這些資訊對你有幫助
XPath 是一門在 XML 文件中查詢資訊的語言。XPath 用於在 XML 文件中透過元素和屬性進行導航。
XPath 含有超過 100 個內建的函式。這些函式用於字串值、數值、日期和時間比較、節點和 QName 處理、序列處理、邏輯值等等。
XPath 是 W3C 標準,XPath 於 1999 年 11 月 16 日 成為 W3C 標準。XPath 被設計為供 XSLT、XPointer 以及其他 XML 解析軟體使用。
在XPath 中,有七種型別的節點:元素、屬性、文字、名稱空間、處理指令、註釋以及文件節點(或稱為根節點)。
XML 文件是被作為節點樹來對待的。樹的根被稱為文件節點或者根節點。
一、選取節點
常用的路徑表示式:
二、謂詞:被嵌在方括號內,用來查詢某個特定的節點或包含某個制定的值的節點
三、萬用字元:Xpath透過萬用字元來選取未知的XML元素
四、取多個路徑:使用“ | 運算子可以選取多個路徑
五、Xpath軸:軸可以定義相對於當前節點的節點集
六、功能函式:使用功能函式能夠更好的進行模糊搜尋
七、常用函式:
1、精確定位
(1)contains(str1,str2)用來判斷str1是否包含str2例1://*[contains(@class,"c-summaryc-row ")]選擇@class值中包含c-summary c-row的節點例2://div[contains(.//text(),"價格")]選擇text()中包含價格的div節點
(2)position()選擇當前的第幾個節點例1://*[@class="result"][position()=1]選擇@class="result"的第一個節點例2://*[@class="result"][position()<=2]選擇@class="result"的前兩個節點
(3)last()選擇當前的倒數第幾個節點例1://*[@class="result"][last()]選擇@class="result"的最後一個節點例2://*[@class="result"][last()-1]選擇@class="result"的倒數第二個節點
(4)following-sibling 選取當前節點之後的所有同級節點例1://div[@class="result"]/following-sibling::div選擇@class="result"的div節點後所有同級div節點找到多個節點時可透過position確定第幾個如://div[@class="result"]/following-sibling::div[position()=1]
(5)preceding-sibling 選取當前節點之前的所有同級節點使用方法同following-sibling
2、過濾資訊
(1)substring-before(str1,str2)用於返回字串str1中位於第一個str2之前的部分例子:substring-before(.//*[@class="c-more_link"]/text(),"條")返回.//*[@class="c-more_link"]/text()中第一個"條"前面的部分,如果不存在"條",則返回空值
(2)substring-after(str1,str2)跟substring-before類似,返回字串str1中位於第一個str2之後的部分例1:substring-after(.//*[@class="c-more_link"]/text(),"條")返回.//*[@class="c-more_link"]/text()中第一個’條’後面的部分,如果不存在"條",則返回空值例2:substring-after(substring-before(.//*[@class="c-more_link"]/text(),"新聞"),"條")返回.//*[@class="c-more_link"]/text()中第一個"新聞"前面與第一個"條"後面之間的部分
(3)normalize-space()用來將一個字串的頭部和尾部的空白字元刪除,如果字串中間含有多個連續的空白字元,將用一個空格來代替例子:normalize-space(.//*[contains(@class,"c-summaryc-row ")])
(4)translate(string,str1,str2)假如string中的字元在str1中有出現,那麼替換為str1對應str2的同一位置的字元,假如str2這個位置取不到字元則刪除string的該字元例子:translate("12:30","03","54")結果:"12:45"
3、拼接資訊
(1)concat()函式用於串連多個字串例子:concat("http://baidu.com",.//*[@class="c-more_link"]/@href)
我也剛剛學不久,希望這些資訊對你有幫助
XPath 是一門在 XML 文件中查詢資訊的語言。XPath 用於在 XML 文件中透過元素和屬性進行導航。
XPath 含有超過 100 個內建的函式。這些函式用於字串值、數值、日期和時間比較、節點和 QName 處理、序列處理、邏輯值等等。
XPath 是 W3C 標準,XPath 於 1999 年 11 月 16 日 成為 W3C 標準。XPath 被設計為供 XSLT、XPointer 以及其他 XML 解析軟體使用。
在XPath 中,有七種型別的節點:元素、屬性、文字、名稱空間、處理指令、註釋以及文件節點(或稱為根節點)。
XML 文件是被作為節點樹來對待的。樹的根被稱為文件節點或者根節點。
一、選取節點
常用的路徑表示式:
二、謂詞:被嵌在方括號內,用來查詢某個特定的節點或包含某個制定的值的節點
三、萬用字元:Xpath透過萬用字元來選取未知的XML元素
四、取多個路徑:使用“ | 運算子可以選取多個路徑
五、Xpath軸:軸可以定義相對於當前節點的節點集
六、功能函式:使用功能函式能夠更好的進行模糊搜尋
七、常用函式:
1、精確定位
(1)contains(str1,str2)用來判斷str1是否包含str2例1://*[contains(@class,"c-summaryc-row ")]選擇@class值中包含c-summary c-row的節點例2://div[contains(.//text(),"價格")]選擇text()中包含價格的div節點
(2)position()選擇當前的第幾個節點例1://*[@class="result"][position()=1]選擇@class="result"的第一個節點例2://*[@class="result"][position()<=2]選擇@class="result"的前兩個節點
(3)last()選擇當前的倒數第幾個節點例1://*[@class="result"][last()]選擇@class="result"的最後一個節點例2://*[@class="result"][last()-1]選擇@class="result"的倒數第二個節點
(4)following-sibling 選取當前節點之後的所有同級節點例1://div[@class="result"]/following-sibling::div選擇@class="result"的div節點後所有同級div節點找到多個節點時可透過position確定第幾個如://div[@class="result"]/following-sibling::div[position()=1]
(5)preceding-sibling 選取當前節點之前的所有同級節點使用方法同following-sibling
2、過濾資訊
(1)substring-before(str1,str2)用於返回字串str1中位於第一個str2之前的部分例子:substring-before(.//*[@class="c-more_link"]/text(),"條")返回.//*[@class="c-more_link"]/text()中第一個"條"前面的部分,如果不存在"條",則返回空值
(2)substring-after(str1,str2)跟substring-before類似,返回字串str1中位於第一個str2之後的部分例1:substring-after(.//*[@class="c-more_link"]/text(),"條")返回.//*[@class="c-more_link"]/text()中第一個’條’後面的部分,如果不存在"條",則返回空值例2:substring-after(substring-before(.//*[@class="c-more_link"]/text(),"新聞"),"條")返回.//*[@class="c-more_link"]/text()中第一個"新聞"前面與第一個"條"後面之間的部分
(3)normalize-space()用來將一個字串的頭部和尾部的空白字元刪除,如果字串中間含有多個連續的空白字元,將用一個空格來代替例子:normalize-space(.//*[contains(@class,"c-summaryc-row ")])
(4)translate(string,str1,str2)假如string中的字元在str1中有出現,那麼替換為str1對應str2的同一位置的字元,假如str2這個位置取不到字元則刪除string的該字元例子:translate("12:30","03","54")結果:"12:45"
3、拼接資訊
(1)concat()函式用於串連多個字串例子:concat("http://baidu.com",.//*[@class="c-more_link"]/@href)