Groovy 漂亮地打印 HTML 的 XmlSlurper 输出?
我使用几个不同的版本来执行此操作,但似乎都导致此错误:
[致命错误]: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()))
}
有什么建议吗?
谢谢你! 米沙
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题是命名空间。解决方法如下:
谢谢!
米沙
The problem is namespaces. Here is the solution:
Thank you!
Misha
仍然没有答案,但如果我使用 XmlParser 那么
会打印得很漂亮。
另外,如果您获得 StreamingMarkupBuilder,您可以执行以下操作:
Misha
Still don't have an answer but if I use XmlParser then
Will pretty print.
Also if you get a StreamingMarkupBuilder, you can do:
Misha