xml - 在 Groovy 中加载、修改和编写 XML 文档

标签 xml groovy

我有一个 XML 文档,我想从文件中加载它,修改一些特定元素,然后写回磁盘。

我找不到任何有关如何在 Groovy 中执行此操作的示例。

最佳答案

您可以只修改节点的value属性来修改元素的值。

/* input:
<root>
  <foo>
    <bar id="test">
      test
    </bar>
    <baz id="test">
      test
    </baz>
  </foo>
</root>
*/

def xmlFile = "/tmp/test.xml"
def xml = new XmlParser().parse(xmlFile)
xml.foo[0].each { 
    it.@id = "test2"
    it.value = "test2"
}
new XmlNodePrinter(new PrintWriter(new FileWriter(xmlFile))).print(xml)

/* output:
<root>
  <foo>
    <bar id="test2">
      test2
    </bar>
    <baz id="test2">
      test2
    </baz>
  </foo>
</root>
*/

关于xml - 在 Groovy 中加载、修改和编写 XML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2245641/

相关文章:

xml - 我可以在不转义属性值的情况下创建 Groovy 节点吗?

groovy - groovy 中的映射语法?

sql - 从不同的表中获取 XML

java - 在 styles.xml 文件中为所有按钮声明一个通用的 onClick 属性

c# - 我如何使用 XDocument.Load() 获取应用程序目录中的文件

c# - 使用 LINQ 进行简单的 XML 解析

jenkins - 我可以将 groovy 脚本从相对目录导入 Jenkinsfile 吗?

testing - 字符串中 "\"转义字符的 Groovy/Grails 扩散

c# - 如何在针对 XSD 验证 XML 时修复 "Could not find schema..."错误?

java.lang.Exception : No signature of method: static java. util.Base64$Encoder.encodeToString() 适用于参数类型:([B)