如果存在多个节点,则 xpath 仅获取一个节点
xpath only get one node if more than one exsist
在一个页面上有多个节点包含相同的信息。我的 xpath 两者兼而有之,我不想要那样。我只想要一个
这是我的 xpath
//em[contains(text(), "Telefon:")]/following-sibling::span
我试过
//em[contains(text(), "Telefon:")]/following-sibling::span[1]
,但运气不好
我已经用ruby这样解决了
docEachLinks.xpath('//em[contains(text(), "Telefon:")]/following-sibling::span').text.split(" ").first
我在这里所做的是用 space 将两者分开,然后我选择第一个。这成功了。
您可以使用 at_xpath
method 而不是 xpath
来仅 return 表达式的第一个匹配项:
doc.at_xpath('//em[contains(text(), "Telefon:")]/following-sibling::span')
您也可以只在 xpath
编辑的节点集 return 上使用 first
:
doc.xpath('//em[contains(text(), "Telefon:")]/following-sibling::span').first
在一个页面上有多个节点包含相同的信息。我的 xpath 两者兼而有之,我不想要那样。我只想要一个
这是我的 xpath
//em[contains(text(), "Telefon:")]/following-sibling::span
我试过
//em[contains(text(), "Telefon:")]/following-sibling::span[1]
,但运气不好
我已经用ruby这样解决了
docEachLinks.xpath('//em[contains(text(), "Telefon:")]/following-sibling::span').text.split(" ").first
我在这里所做的是用 space 将两者分开,然后我选择第一个。这成功了。
您可以使用 at_xpath
method 而不是 xpath
来仅 return 表达式的第一个匹配项:
doc.at_xpath('//em[contains(text(), "Telefon:")]/following-sibling::span')
您也可以只在 xpath
编辑的节点集 return 上使用 first
:
doc.xpath('//em[contains(text(), "Telefon:")]/following-sibling::span').first