org.w3c.dom.Document使用Groovy的XML字符串

时间:2009-06-30 09:19:23

标签: xml dom groovy

我有一个org.w3c.dom.Document实例,我需要转换为XML字符串。我知道如何在Java中使用javax.xml.transform工具来做这件事,但我想知道是否有一种更“常规”的方法呢?

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

非常感谢任何帮助!

2 个答案:

答案 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 APIGroovy 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>