XPath:在文本节点内查找一个节点

时间:2018-11-07 20:23:21

标签: html ruby xml xpath

我有以下html:

<code>The first code block</code>
<p>Some text and <code>the second code block</code> followed by other text</p>

我需要从中找到并删除所有code个块。我使用以下XPath '//code',但它仅找到第一个代码块,而第二个保留。

问题:为什么'//code'无法捕获第二个代码块?如何解决?

详细信息::我正在使用Nokagiry在Ruby中进行操作。我的代码如下:

html = Nokogiri::HTML(File.read(htmlFile))
html.search('//code').remove

更新:

XPath实际上起作用了。我只是在另一个地方犯了一个错误。

1 个答案:

答案 0 :(得分:1)

好像您忘记了迭代器...
试试:

html = Nokogiri::HTML(File.read(htmlFile))
html.search('//code').each{|htm| htm.remove}