在一个页面上,有多个节点包含相同的信息。我的xpath正在得到两者,我不想这样。我只想要一个
这是我的xpath。
//em[contains(text(), "Telefon:")]/following-sibling::span
我确实尝试了
//em[contains(text(), "Telefon:")]/following-sibling::span[1]
,但没有运气
您可以使用
at_xpath
方法而不是 xpath
只返回表达式的第一个匹配项:
doc.at_xpath('//em[contains(text(), "Telefon:")]/following-sibling::span')
您也可以在 xpath
返回的节点集上使用 first
:
doc.xpath('//em[contains(text(), "Telefon:")]/following-sibling::span').first
我已经用这样的 ruby 解决了它
docEachLinks.xpath('//em[contains(text(), "Telefon:")]/following-sibling::span').text.split(" ").first
我在这里所做的是用空格将两者分开,然后选择第一个。这成功了。