02.29 關鍵詞搜索後的鏈接XPath怎麼寫?

趙連常


這裡給你提供一些資料吧,我從網絡上給你找的,希望對你有用,

我也剛剛學不久,希望這些信息對你有幫助


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)


分享到:


相關文章: