我有一个org.w3c.dom.Document实例,我需要转换为XML字符串。我知道如何在Java中使用javax.xml.transform工具来做这件事,但我想知道是否有一种更“常规”的方法呢?
我尝试过使用DomToGroovy类,它成功创建了DOM文档的groovy脚本版本。但我不确定如何使用它来生成XML字符串。我可能正在咆哮错误的树......
非常感谢任何帮助!
答案 0 :(得分:3)
但我想知道是否有一种更“常规”的做法?
肯定有:class groovy.xml.XmlUtil
我不确定添加此类时Groovy的版本是什么,但我想这是早期版本。
编辑:class groovy.xml.XmlUtil exists since version 1.6.0;在1.5.x版本中,它被命名为groovy.xml.dom.DOMUtil。在任何一个版本中,这个类都不会做任何太常规的事情;如果你看一下its source,你会发现它只是java.xml.transform
的包装。但是,我非常感谢Groovy GDK提供了一种简单的方法来执行这样的常见操作(将xml写入字符串),而Java JDK则无法实现。
示例:
import javax.xml.parsers.DocumentBuilderFactory
import groovy.xml.XmlUtil
def fileName = 'build.xml'
def builder = DocumentBuilderFactory.newInstance().newDocumentBuilder()
def inputStream = new FileInputStream(fileName)
def doc = builder.parse(inputStream)
println XmlUtil.serialize(doc.documentElement)
在推出自己的解决方案之前,请务必先查看Groovy API和Groovy extensions to the JDK(这是我从中学到的一课)
答案 1 :(得分:2)
现在非常时髦
> def doc = groovy.xml.DOMBuilder.newInstance().parseText("<foo count='42'><bar/><foo>")
> doc.documentElement as String
<foo count="42">
<bar/>
</foo>