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

时间:2013-08-22 15:40:36

标签: groovy gradle xmlslurper

我正在尝试gradle.build

  1. 读取XML文件
  2. 使用XmlSlurper更新读取XML文件中的属性
  3. 将更新的XML写回最初解析的xml文件。
  4. 第三步只有在我将修改后的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)
    

    我希望outFilefile.xml,以便覆盖原始XML文件。

1 个答案:

答案 0 :(得分:10)

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

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 )
}

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