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

Goi*_*nas 5 groovy xmlslurper gradle

我有一个gradle.build我想要的地方:

  1. 读取XML文件
  2. 用于XmlSlurper更新读取XML文件中的属性
  3. 将更新的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)
Run Code Online (Sandbox Code Playgroud)

我想outFilefile.xml这样,它覆盖原始的XML文件.

tim*_*tes 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 )
}
Run Code Online (Sandbox Code Playgroud)

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