2017-04-13 95 views
0

使用XPath,我試圖得到公正的ISBN號,記載下列事項:我怎樣才能選擇只有第一個下面的兄弟姐妹?

<span class="product_info_details"> 
    <b class="">ISBN: </b>1941529429 
    <b class="">Contributors: </b> (Illustrator) 
    <b class="">Publisher:</b> Parallax Pr 
    <b class="">Published:</b> Nov 1 2016 
</span> 

現在,當我使用:

//span[@class="product_info_details"]/b/following-sibling::text() 

我得到的輸出:

1941529429 

(Illustrator) 

Parallax Pr 

Nov 1 2016 

我可以使用什麼,以便我得到第一個值(1941529429)作爲結果?

回答

0
(//span[@class="product_info_details"]/b)[1]/following-sibling::text()[1] 
3

要限制b元素與XPath找到包含字符串「ISBN」之一,並限制了以下同級文本節點最近的只有

//span[@class="product_info_details"]/b[contains(.,'ISBN')]/following-sibling::text()[1] 

或者,您可以限制XPath找到的b元素爲以子串「ISBN」開頭的元素:

..../b[starts-with(.,'ISBN')]/.... 

使用位置索引1,正如在其他答案中提到的,也應該工作,因爲b元素的順序是一致的,但上面給出的兩種替代方式更好地代表了您的意圖,因爲它提到了基於您的字符串「ISBN」搜索條件來查找目標文本。