Groovy-修改xml文件值

问题描述

我有一个XML文件,我在下面粘贴我的xml文件。我想使用常规脚本更改splash_color的值。我试图解析它,但无法成功。 XML

https://{application.AccessKey}.eu1.cloud.thethings.industries

Groovy代码

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="splash_color">#D3B61A</color>
</resources>

解决方法

下面的作品。

def xmlFile = '''<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <color name="splash_color">#D3B61A</color>
</resources>
'''

您可以使用XmlUtil.serialize代替new XmlNodePrinter(new PrintWriter(new FileWriter ...

import groovy.xml.XmlUtil

我正在使用parseText(),因为在此示例中,我不是从文件读取

def resources = new XmlParser().parseText(xmlFile)

您不必在这里使用[0],但是如果有更多同名节点,请使用findAll()

resources.color.each { 

使用${}插入字符串中的变量

    println "it.value=${it.value}" 
    println "it.name=${it.@name}"
}

println XmlUtil.serialize(resources)

您可以将其通过管道传输到文件。

有关节点的更换,请参见this