6

特定の HTML ページから HTML の一部を抽出する必要があります。ここまでは、XmlSlurper と tagsoup を使用して 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>

これは見栄えがしますが、html-namespace なしで取得したいと思います。

名前空間を回避するにはどうすればよいですか?

4

1 に答える 1

7

TagSoup パーサーの名前空間機能をオフにします。例:

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)
于 2011-04-25T17:39:54.873 に答える