使用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 :(得分:6)
您希望将XPath找到的b
元素限制为包含子字符串&#39; ISBN&#39; 的元素,并将以下兄弟文本节点限制为最近的:
//span[@class="product_info_details"]/b[contains(.,'ISBN')]/following-sibling::text()[1]
或者,您可以将XPath找到的b
元素限制为以子字符串&#39; ISBN&#39;开头的元素。 :
..../b[starts-with(.,'ISBN')]/....
使用位置索引1
,如另一个答案所述,也应该有效,因为b
元素的顺序是一致的,但上面给出的两个替代方案更好地代表了你的意图,因为它提到了子串&#39; ISBN&#39;您根据搜索条件找到目标文本。
答案 1 :(得分:2)
(//span[@class="product_info_details"]/b)[1]/following-sibling::text()[1]