2009-11-04 8 views
10

Quando faccio la seguente con Nokogiri:Processing solo frammento di HTML e di restituirla

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

Sarà stampare l'intera struttura doc XHTML con il codice in alto in esso.

Come posso stampare/restituire/ottenere la parte html che si trova nella variabile some_html?


No.

f tornerà:

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

Voglio solo la parte/frammento interna:

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

risposta

1

Cosa vuoi dire dalla parte 'html' ?

Basta fare f.text() per ottenere il testo interno.

30

Invece di analisi utilizzando 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

è una questione di stile, ma personalmente trovo Nokogiri :: HTML.fragment meno confusione di Nokogiri :: :: HTML frammento - non sembra un errore di battitura;) – mkk

Problemi correlati