format internet:

…please wait (42% completed)…

Parsear XML o HTML mal formado

Posted by javier ramirez on December 6, 2006

Si necesitais parsear XML o HTML mal formado hay unas cuantas opciones interesantes en ruby / rails. De las que he visto, me ha parecido que htree da más que suficiente y tira rápido.

Yo la acabo de utilizar para leer un html de una web, que me lo convierta a XML cerrando los tags abiertos estilo <br>, que me cierre los tags que se han olvidado como algún <span> y algún <tr> y luego poder acceder al html como si fuera xml directamente, pudiendo usar XPATH para recorrerlo.

Ejemplo de la vida misma

require ‘open-uri’
require ‘htree’

#Primero me conecto a una web y leo su contenido
str_xml = ”
open(“https://formatinternet.wordpress.com&#8221;, ‘User-Agent’=>”Ruby/#{RUBY_VERSION}”)
  { |file| str_xml = file.read }


#ahora parseo con HTree y me aseguro que me da un XHTML bien formado,
dejando el documento en un documento rexml
parsed_xml = HTree.parse(str_xml).to_rexml


#y aquí ya puedo, por ejemplo, obtener un array de todos los divs en
el html
a_divs = parsed_xml.elements.to_a(‘//div’)

searchwords: malformed XML, malformed HTML, parser, htree

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: