我有一个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 ) }
它只是没有写? (似乎对我有用)