2010-07-15 17 views
7

he creado un nodo de texto y se inserta en mi documento, así:¿Evitar que Nokogiri escape de los personajes?

#<Nokogiri::XML::Text:0x3fcce081481c "<%= stylesheet_link_tag 'style'%>">]> 

Cuando trato de guardar el documento con esto:

File.open('ng.html', 'w+'){|f| f << page.to_html} 

consigo esto en el documento actual:

&lt;%= stylesheet_link_tag 'style'%&gt; 

¿Hay alguna manera de desactivar el escape y guardar mi página con mis etiquetas erb intactas?

Gracias!

Respuesta

7

Usted está obligado a escapar a algunos personajes de los elementos de texto como:

" &quot; 
' &apos; 
< &lt; 
> &gt; 
& &amp; 

Si desea que su texto literal usar una sección CDATA ya que todo dentro de una sección CDATA es ignorado por el intérprete.

Nokogiri ejemplo:

builder = Nokogiri::HTML::Builder.new do |b| 
    b.html do 
    b.head do 
     b.cdata "<%= stylesheet_link_tag 'style'%>" 
    end 
    end 
end 
builder.to_html 

Esto debe mantenerse intacta etiquetas erb!

+0

dulce! Gracias fotos! – mikewilliamson

10

Tal vez usted desea utilizar el "<<" method para insertar XML sin procesar de esta manera:

builder = Nokogiri::XML::Builder.new do |b| 
    b.html do 
    b.head do 
     b << stylesheet_link_tag 'style' 
    end 
    end 
end 
builder.to_xml 
+0

¡Gracias justo lo que necesitaba! –

Cuestiones relacionadas