使用Groovy将org.w3c.dom.Document转换为XML字符串

使用Groovy将org.w3c.dom.Document转换为XML字符串,xml,dom,groovy,Xml,Dom,Groovy,我有一个org.w3c.dom.Document实例,需要将其转换为XML字符串。我知道如何在Java中实现这一点(使用javax.xml.transform工具),但我想知道是否有一种更“groovy”的方式来实现这一点 我尝试了使用DomToGroovy类,它成功地创建了DOM文档的groovy脚本版本。但我不确定如何使用它来生成XML字符串。我可能找错树了 任何帮助都将不胜感激 但我想知道是否有一种更“常规”的方式来实现这一点 当然有:课堂 我不确定添加这个类时Groovy的版本是什么,但

我有一个org.w3c.dom.Document实例,需要将其转换为XML字符串。我知道如何在Java中实现这一点(使用javax.xml.transform工具),但我想知道是否有一种更“groovy”的方式来实现这一点

我尝试了使用DomToGroovy类,它成功地创建了DOM文档的groovy脚本版本。但我不确定如何使用它来生成XML字符串。我可能找错树了

任何帮助都将不胜感激

但我想知道是否有一种更“常规”的方式来实现这一点

当然有:课堂

我不确定添加这个类时Groovy的版本是什么,但我猜它是早期版本

编辑:类groovy.xml.XmlUtil;在版本1.5.x中,它被命名为。在这两个版本中,这个类都没有做任何太groovy的事情;如果你看一下,你会发现它只是
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)
在推出您自己的解决方案之前,请务必查看和(这是我通过艰苦的努力学到的一课)

它现在非常棒

> def doc = groovy.xml.DOMBuilder.newInstance().parseText("<foo count='42'><bar/><foo>")
> doc.documentElement as String
<foo count="42">
  <bar/>
</foo>
>def doc=groovy.xml.domguilder.newInstance().parseText(“”)
>doc.documentElement作为字符串

我认为它是在Groovy 1.6中添加的。NetBeans 6.5附带的Groovy 1.5中没有