use*_*623 5 ruby xpath nokogiri
我是Nokogiri和Ruby的新手。
我想获取文档中所有节点的文本,从第一段节点开始,包括第一段节点。
我用XPath尝试了以下操作,但无济于事:
puts page.search("//p[0]/text()[next-sibling::node()]")
Run Code Online (Sandbox Code Playgroud)
这行不通。我必须改变什么?
您必须找到该<p/>节点并返回text()内部和后续的所有节点。根据Nokogiri具有的XPath功能,使用以下查询之一:
//p[1]/(descendant::text() | following::text())
Run Code Online (Sandbox Code Playgroud)
如果不起作用,请改用此方法,它需要两次查找第一段,并且可能会有点,但可能会更慢一些:
(//p[1]/descendant::text() | //p[1]/following::text())
Run Code Online (Sandbox Code Playgroud)
可能不受支持的XPath 2.0替代方案是:
//text()[//p[1] << .]
Run Code Online (Sandbox Code Playgroud)
这意味着“所有文本节点都<p/>在文档中的第一个节点之后”。
| 归档时间: |
|
| 查看次数: |
2307 次 |
| 最近记录: |