2009-11-04 3 views
10

Wenn ich das mit Nokogiri folgendes tun:Verarbeitung nur HTML-Fragment und Zurückkehren es

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

Es wird die ganze XHTML doc Struktur mit dem oberen Code in drucken.

Wie kann ich nur den HTML-Teil drucken/zurückgeben/erhalten, der in some_html variabel ist?


Nr

f zurückkehren:

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

ich nur den inneren/Fragment Teil will:

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

Antwort

1

Was meinst du mit 'html' Teil ?

Tun Sie einfach f.text(), um den inneren Text zu erhalten.

30

Statt Parsing mit Nokogiri::HTML(...) Verwendung 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 ist eine Frage des Stils, aber ich persönlich finde Nokogiri :: HTML.fragment weniger verwirrend als Nokogiri :: HTML :: Fragment - es sieht nicht so aus ein Tippfehler ;) – mkk

Verwandte Themen