有没有办法选择节点的所有内容?

时间:2010-03-26 15:15:04

标签: xml ruby utf-8 nokogiri

有没有办法在Nokogiri中选择节点的所有内容?

<root>
    <element>this is <hi>the content</hi> of my æøå element</element>
</root>

获取/root/element内容的结果应为:

this is <hi>the content</hi> of my æøå element

编辑:

似乎解决方案只是使用myElement.inner_html()。我遇到的问题实际上是我依赖于旧版本的libxml2,它逃脱了所有特殊字符。

2 个答案:

答案 0 :(得分:0)

Nokogiri.parse('<root><element>this is <hi>the content</hi> of my element</element></root>').css('element').inner_html

如果你想逃避,可以使用CGI.unescape方法:

require 'cgi'
x = Nokogiri.parse('<root><element>this is <hi>the content</hi> of my element</element></root>').css('element').inner_html
CGI.unescape(x)

答案 1 :(得分:0)

我认为之前的答案是假设HTML。我不确定这是否合适,所以这是我的(类似)答案:

require 'nokogiri'
xml = '<root><element>this is <hi>the content</hi> of my æøå element</element></root>' 
p Nokogiri(xml).at('element').to_xml