Xpath 如何仅选择以下第一个兄弟姐妹?

Xpath 如何仅选择以下第一个兄弟姐妹?,xpath,Xpath,使用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=""&g

使用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>
我得到输出:

1941529429

(Illustrator)

Parallax Pr

Nov 1 2016
我可以使用什么来获得第一个值1941529429作为结果?

您希望将XPath找到的b元素限制为包含子字符串“ISBN”的元素,并将以下同级文本节点限制为仅最近的一个:

(//span[@class="product_info_details"]/b)[1]/following-sibling::text()[1]
或者,您可以将XPath找到的b元素限制为以子字符串“ISBN”开头的元素:

..../b[starts-with(.,'ISBN')]/....
如果b元素的顺序是一致的,那么使用位置索引1(如另一个答案中所述)也应该有效,但上面给出的两个备选方案更好地代表了您的意图,因为它提到了子字符串“ISBN”,您可以根据子字符串“ISBN”来查找目标文本

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