我正在使用幾個不同的版本來做到這一點,但所有似乎都會導致此錯誤:Groovy漂亮打印XmlSlurper從HTML輸出?
[致命錯誤]:1:171:前綴「xmlns」不能顯式綁定到任何名稱空間; 「xmlns」的命名空間也不能明確地綁定到任何前綴。
我加載HTML爲:
// Load html file
def fis=new FileInputStream("2.html")
def html=new XmlSlurper(new org.cyberneko.html.parsers.SAXParser()).parseText(fis.text)
版本我已經試過:
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 2018-01-24 10:14:40