我怎样才能只选择下面的第一个兄弟姐妹?

Ult*_*ter 0 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="">Published:</b> Nov 1 2016
</span>
Run Code Online (Sandbox Code Playgroud)

现在,当我使用:

//span[@class="product_info_details"]/b/following-sibling::text()
Run Code Online (Sandbox Code Playgroud)

我得到输出:

1941529429

(Illustrator)

Parallax Pr

Nov 1 2016
Run Code Online (Sandbox Code Playgroud)

我可以使用什么,以便我得到第一个值(1941529429)作为结果?

har*_*r07 7

您希望b将XPath找到的元素限制为包含子字符串"ISBN"的元素,并将以下兄弟文本节点限制为仅最近的:

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

或者,您可以b将XPath找到的元素限制为以子字符串"ISBN"开头的元素:

..../b[starts-with(.,'ISBN')]/....
Run Code Online (Sandbox Code Playgroud)

使用位置索引1,作为对方的回答中提到,应该也行给出的顺序b元素是一致的,但上面给出的两个备选方案代表了你的意图更好,因为它提到的,你根据你的搜索条件来查找字符串"ISBN"目标文本.