Is there a way to select all the contents of a nod

2019-06-07 07:20发布

Is there a way to select all the contents of a node in Nokogiri?

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

The result of getting the content of /root/element should be:

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

Edit:

It seems like the solution is simply to use myElement.inner_html(). The problem I had was in fact that I was relying on an old version of libxml2, which escaped all the special characters.

2条回答
冷血范
2楼-- · 2019-06-07 07:26

I think the previous answer is assuming HTML. I'm not sure that's appropriate, so here's my (similar) answer:

require 'nokogiri'
xml = '<root><element>this is <hi>the content</hi> of my æøå element</element></root>' 
p Nokogiri(xml).at('element').to_xml
查看更多
仙女界的扛把子
3楼-- · 2019-06-07 07:51
Nokogiri.parse('<root><element>this is <hi>the content</hi> of my element</element></root>').css('element').inner_html

If you want escape that, you can with CGI.unescape method:

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)
查看更多
登录 后发表回答