2009-11-04 6 views
10

Quand je fais ce qui suit avec Nokogiri:traitement juste fragment HTML et de le retourner

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

Il imprime toute la structure doc XHTML avec le code supérieur en elle.

Comment est-ce que je peux juste imprimer/retourner/obtenir la partie html qui est dans la variable some_html?


n °

f retourne:

"<!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" 

Je veux que la partie intérieure/fragment:

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

Répondre

1

Que voulez-vous dire par la partie 'html' ?

Faites simplement f.text() pour obtenir le texte interne.

30

au lieu d'analyser en utilisant Nokogiri::HTML(...) utilisation Nokogiri::HTML::fragment(...):

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

il est une question de style, mais personnellement je trouve Nokogiri :: HTML.fragment moins confus que Nokogiri :: HTML :: fragment - il ne ressemble pas à une faute de frappe ;) – mkk