如果存在多个节点,则 XPath 仅获取一个节点



在一个页面上,有多个节点包含相同的信息。我的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

我在这里所做的是用空格将两者分开,然后选择第一个。这成功了。

相关内容

  • 没有找到相关文章

最新更新