groovy – 将更新的XML写入最初解析的文件

我有一个gradle.build,我正在尝试:

>读取XML文件
>使用XmlSlurper更新读取XML文件中的属性
>将更新的XML写回最初解析的xml文件.

第三步仅在我将修改后的XML写入新的不存在的XML文件而不是最初解析的XML文件时才有效.

修改后的XML写入最初解析的XML文件的最简单方法是什么?

我的代码到目前为止:

def inFile = file('file.xml')
def outFile = file('_file.xml')

def xml = new XmlSlurper().parse(inFile)

// update xml code here

def outBuilder = new StreamingMarkupBuilder()
def outWriter = outFile.newWriter()
XmlUtil.serialize(outBuilder.bind{ mkp.yield xml },outWriter)

我想outFile是file.xml,以便它覆盖原始的XML文件.

解决方法

如果您这样做会发生什么:

def inFile = file( 'file.xml' )
def xml = new XmlSlurper().parse( inFile )

xml.appendNode {
    haha( 'tim_yates' )
}

inFile.withWriter { outWriter ->
    XmlUtil.serialize( new StreamingMarkupBuilder().bind{ mkp.yield xml },outWriter )
}

它只是没有写? (似乎对我有用)

相关文章

背景:    8月29日,凌晨4点左右,某服务告警,其中一个...
https://support.smartbear.comeadyapi/docs/soapui/steps/g...
有几个选项可用于执行自定义JMeter脚本并扩展基线JMeter功能...
Scala和Java为静态语言,Groovy为动态语言Scala:函数式编程,...
出处:https://www.jianshu.com/p/ce6f8a1f66f4一、一些内部...
在运行groovy的junit方法时,报了这个错误:java.lang.Excep...