doc = Nokogiri::HTML(open(url)).xpath("//*")
.xpath("//*[br]/text()[string-length(normalize-space()) != 0]")
.wrap("<span></span>")
puts doc
它只返回文本...我期待完整的html源代码现在包含在指定的xpath元素周围。
答案 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>
和至少一个非空文本节点的任何节点。