2013-12-08 25 views
1

我使用XPath的問題是每當我使用「substring」函數時,我只得到一個匹配,並且我想讓它們全部。 另一個問題是,每當我使用「substring」和operator |它只是不會工作(不匹配)。XPath:使用substring-after只返回一個匹配

例如:http://www.tripadvisor.com/Hotel_Review-g52024-d653910-Reviews-Ace_Hotel_Portland-Portland_Oregon.html

在此網頁上我使用的查詢

//SPAN[@class='ratingDate relativeDate']/@title | //*[@class='ratingDate']/text() 

我得到了10場比賽,但他們中的一些開始「發表評論」。所以我說 「子 - 後」,並沒有得到任何比賽

原來的語法:

//SPAN[@class='ratingDate relativeDate']/@title | substring-after(//*[@class='ratingDate']/text(), 'Reviewed ') 

回答

3

純的XPath 1.0你解決不了,如果你使用XPath 2.0或XQuery 1.0您可以將substring-after調用放入路徑的最後一步,例如//*[@class='ratingDate']/substring-after(., 'REVIEWED')

如果你只有XPath 1.0,那麼你首先需要選擇帶有XPath的元素,然後迭代宿主語言的結果來提取每個元素的子字符串;你如何做到這一點取決於主機語言和XPath API。

相關問題