2009-11-04 12 views
10

Cuando hago lo siguiente con Nokogiri:Procesamiento solo fragmento de HTML y devolverlo

some_html = '<img src="bleh.jpg"/>test<br/>' 
f = Nokogiri::HTML(some_html) 
#do some processing 
puts f 

Se imprimirá toda la estructura doc XHTML con el código superior en ella.

¿Cómo puedo simplemente imprimir/devolver/obtener la parte html que está en la variable some_html?


f volverá:

"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www 
.w3.org/TR/REC-html40/loose.dtd\">\n<html><body>\n<img src=\"bleh.jpg\">test<br>\n 
</body></html>\n" 

sólo quiero la parte/fragmento interno:

<img src=\"bleh.jpg\">test<br> 

Respuesta

1

¿Qué quiere decir por la parte 'html' ?

Simplemente haga f.text() para obtener el texto interno.

30

En lugar de utilizar el análisis Nokogiri::HTML(...) uso Nokogiri::HTML::fragment(...):

asdf = Nokogiri::HTML::fragment('<img src="bleh.jpg">test<br>') 
print asdf.to_html 
# >> <img src="bleh.jpg">test<br> 
+1

es una cuestión de estilo, pero personalmente me parece Nokogiri :: HTML.fragment menos confuso que Nokogiri :: :: fragmento HTML - que no se ve como un error ;) – mkk

Cuestiones relacionadas