Есть ли способ выбрать все содержимое узла? - PullRequest
1 голос
/ 26 марта 2010

Есть ли способ выбрать все содержимое узла в Нокогири?

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

Результат получения содержимого /root/element должен быть:

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

Edit:

Похоже, что решение заключается в простом использовании myElement.inner_html(). Проблема, с которой я столкнулся, заключалась в том, что я полагался на старую версию libxml2, которая экранировала все специальные символы.

Ответы [ 2 ]

0 голосов
/ 26 марта 2010

Я думаю, что предыдущий ответ предполагает HTML. Я не уверен, что это уместно, поэтому вот мой (похожий) ответ:

require 'nokogiri'
xml = '<root><element>this is <hi>the content</hi> of my æøå element</element></root>' 
p Nokogiri(xml).at('element').to_xml
0 голосов
/ 26 марта 2010
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)
...