Groovy的XMLUtil序列化方法无法正常工作。

19 浏览
0 Comments

Groovy的XMLUtil序列化方法无法正常工作。

我正在使用Groovy的XMLSlurper来修改一个XML文件,并使用Groovy的XMLUtil将其写回。

这段代码在Grails控制台中运行得很好。但是在Grails脚本中使用时会抛出错误。

注意:第96行是XMLUtil序列化的地方,我在这里将XML写回。

使用Grails 2.3.5和jdk 1.7。

0
0 Comments

问题原因:Groovy的XMLUtil serialize方法不起作用。

解决方法:将groovy.util.slurpersupport.Node包装在groovy.util.slurpersupport.NodeChild的实例中,然后将其传递给XmlUtil的serialize方法。

代码如下:

import groovy.util.slurpersupport.Node
import groovy.util.slurpersupport.NodeChild
import groovy.xml.XmlUtil
class GroovyNodeSerializer {
    static String toXML(Node node) {
        return XmlUtil.serialize(new NodeChild(node, null, null))
    }
}

0