【发布时间】:2023-02-10 04:25:06
【问题描述】:
我正在尝试使用 XmlSlurper 读取和更改 pom.xml 的一个特定节点,但我无法更改原始文件。
原来的 pom.xml:
<myFile>
...
<tag1>
<tag2>
<name1>something1</name1>
<name2>something2</name2>
<name3>something3</name3>
</tag2>
</tag1>
...
</myFile>
我需要替换现有信息并添加更多信息,如下所示:
<myFile>
...
<tag1>
<tag2>
<name1>something4</name1>
<name2>something5</name2>
<name3>something6</name3>
<name4>something7</name4>
</tag2>
</tag1>
...
</myFile>
我尝试了多种方法,最接近的是这段代码:
def file = new File('pom.xml')
def xml = new XmlSlurper().parse(file)
xml.tag1.tag2[0].replaceNode {
name1("something1")
name2("something2")
name3("something3")
name4("something4")
}
def writer = new FileWriter(file)
new XmlNodePrinter(new PrintWriter(writer)).print(xml)
但是当我运行这段代码时,原来的 pom.xml 是空的。我知道有很多关于此的帖子,但我无法让它发挥作用。我究竟做错了什么?
【问题讨论】:
标签: xml groovy xml-parsing xmlslurper