내가이 일을 여러 가지 다른 버전을 사용하고 있지만, 모두가이 오류가 발생하는 것 :HTML에서 멋지게 출력되는 XmlSlurper 출력?
[치명적인 오류] : 1 : 171 : 접두사가 "의 xmlns"가 명시 적으로 네임 스페이스에 바인딩 할 수 없습니다; "xmlns"의 네임 스페이스도 명시 적으로 모든 접두어에 바인딩 할 수 없습니다. 내가 해봤
// Load html file
def fis=new FileInputStream("2.html")
def html=new XmlSlurper(new org.cyberneko.html.parsers.SAXParser()).parseText(fis.text)
버전 :
나는 같은 HTML을로드
http://johnrellis.blogspot.com/2009/08/hmmm_04.html
import groovy.xml.StreamingMarkupBuilder
import groovy.xml.XmlUtil
def streamingMarkupBuilder=new StreamingMarkupBuilder()
println XmlUtil.serialize(streamingMarkupBuilder.bind{mkp.yield html})
http://old.nabble.com/How-to-print-XmlSlurper%27s-NodeChild-with-indentation--td16857110.html
// Output
import groovy.xml.MarkupBuilder
import groovy.xml.StreamingMarkupBuilder
import groovy.util.XmlNodePrinter
import groovy.util.slurpersupport.NodeChild
def printNode(NodeChild node) {
def writer = new StringWriter()
writer << new StreamingMarkupBuilder().bind {
mkp.declareNamespace('':node[0].namespaceURI())
mkp.yield node
}
new XmlNodePrinter().print(new XmlParser().parseText(writer.toString()))
}
어떤 조언을?
감사합니다. 미샤
이 대답이 받아 들여지는 대답인지 확실하지 않습니다. 'XmlUtil.serialize'는'StreamingMarkupBuilder.bind'에 의해 리턴 된'Writable'을 String으로 내부적으로 변환합니다. 이것은 스트리밍의 전체 영역을 무너 뜨립니다. – Dave