I have a gradle.build
where I am trying to:
- read an XML file
- use
XmlSlurper
to update an attribute in the read XML file - write the updated XML back to the originally parsed xml file.
The third step only works if I write the modified XML to a new non-existing XML file, but not the originally parsed XML file.
What is the simplest way to write the modified XML to the originally parsed XML file?
My code so far:
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)
I would like outFile
to be file.xml
so that it overwrites the original XML file.