2011-04-25 22 views
6

के साथ निकालने के लिए मुझे किसी दिए गए HTML पृष्ठ से HTML का एक हिस्सा निकालने की आवश्यकता है। अब तक, मैं tagsoup साथ XmlSlurper का उपयोग HTML पृष्ठ पार्स और फिर StreamingMarkupBuilder का उपयोग करके जरूरत हिस्सा प्राप्त करने की कोशिश:एचआरएल के हिस्सों को ग्रोवी

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) 

हालांकि, परिणाम मैं

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

जो दिखता है अच्छा है, लेकिन मैं इसे एचटीएमएल-नेमस्पेस के बिना प्राप्त करना चाहता हूं।

मैं नामस्थान से कैसे बचूं?

उत्तर

6

टैग्सपॉप पार्सर पर नेमस्पेस सुविधा बंद करें। उदाहरण:

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)