XPath:如何选择第二个文本节点(特定的文本节点)

3
考虑一个HTML页面。
<html>
apple

orange

drugs

</html>

如何使用XPath选择橙色?

/html/text()[2]

无法工作。


3
这里并不是有几个文本节点,而是一个包含换行符的单个文本节点。 - Pavel Minaev
如果文本通过 <br> 分隔,该怎么办? - pingu
1
XPath在HTML上不起作用 - 它只适用于XML。除非你的HTML确实是XHTML,否则你将得不到任何好的结果。 - marc_s
2个回答

3

你无法直接通过选择来完成。你需要调用一个xpath字符串函数来截取text()以获得您想要的字符串。

substring-after(/html/text()," ") // something like this,

这里有一个字符串函数列表


1

如果字符串用<br>分隔,它就可以工作

  doc = Nokogiri::HTML("""<html>
  apple
  <br>
  orange
  <br>
  drugs
  </html>""")
  p doc.xpath('//text()[2]') #=> orange

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接