2009-11-19 18 views

Respuesta

4

¿Algo que no esté bien con?

nodeset.inner_html 
0

Una versión anterior de libxml2 puede hacer que Nokogiri devuelva algunos caracteres que se han escapado. Tuve este problema recientemente.

1

envolver su nodos en CDATA:

def wrap_in_cdata(node) 
    # Using Nokogiri::XML::Node#content instead of #inner_html (which 
    # escapes HTML entities) so nested nodes will not work 
    node.inner_html = node.document.create_cdata(node.content) 
    node 
end 

Nokogiri::XML::Node#inner_html escapa entidades HTML excepto en las secciones CDATA.

fragment = Nokogiri::HTML.fragment "<div>Here is an unescaped string: <span>Turn left > right > straight & reach your destination.</span></div>" 
puts fragment.inner_html 
# <div>Here is an unescaped string: <span>Turn left &gt; right &gt; straight &amp; reach your destination.</span></div> 


fragment.xpath(".//span").each {|node| node.inner_html = node.document.create_cdata(node.content) } 
fragment.inner_html 
# <div>Here is an unescaped string: <span>Turn left > right > straight & reach your destination.</span>\n</div> 
Cuestiones relacionadas