为什么我不能绕着nokogiri xpath?</span>包裹<span>

时间:2009-10-18 01:45:31

标签: ruby xpath nokogiri

    doc = Nokogiri::HTML(open(url)).xpath("//*")
.xpath("//*[br]/text()[string-length(normalize-space()) != 0]")
.wrap("<span></span>")

    puts doc

它只返回文本...我期待完整的html源代码现在包含在指定的xpath元素周围。

1 个答案:

答案 0 :(得分:1)

尝试

doc = Nokogiri::HTML(open(url)).xpath("//*")
.xpath("//*[br and text()[string-length(normalize-space()) != 0]]")
.wrap("<span></span>")

puts doc

您的XPath所做的是获取非空文本节点。根据他们的定义,它不包含任何标记。

相反,我的XPath会获取包含至少一个<br>和至少一个非空文本节点的任何节点。