2011-04-25 19 views
6

Necesito extraer una parte de HTML de una página HTML dada. Hasta ahora, yo uso el XmlSlurper con tagsoup a analizar la página HTML y luego tratar de llegar a la parte necesaria mediante el uso de la StreamingMarkupBuilder:extrayendo partes de HTML con groovy

import groovy.xml.StreamingMarkupBuilder 
def html = "<html><body>a <b>test</b></body></html>" 
def dom = new XmlSlurper(new org.ccil.cowan.tagsoup.Parser()).parseText(html) 
println new StreamingMarkupBuilder().bindNode(dom.body) 

Sin embargo, el resultado que se ve es

<html:body xmlns:html='http://www.w3.org/1999/xhtml'>a <html:b>test</html:b></html:body> 

que parece genial, pero me gustaría obtenerlo sin el espacio de nombres html.

¿Cómo evito el espacio de nombres?

Respuesta

6

desactivar la función de espacio de nombres en el analizador TagSoup. Ejemplo:

import groovy.xml.StreamingMarkupBuilder 
def html = "<html><body>a <b>test</b></body></html>" 
def parser = new org.ccil.cowan.tagsoup.Parser() 
parser.setFeature(parser.namespacesFeature, false) 
def dom = new XmlSlurper(parser).parseText(html) 
println new StreamingMarkupBuilder().bindNode(dom.body)