5

我有一个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)

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

4

1 回答 1

12

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

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

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

于 2013-08-22T15:43:02.693 回答