Xpath 如何仅选择以下第一个兄弟姐妹?
使用XPATH,我试图从以下内容中获取ISBN编号: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
<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')]/....