我需要更新 XML 文件中的多个节点(只需将一个文本元素替换为另一个),这样生成的 XML 文件将保留其所有格式(在可能的情况下)。
例如,以下是源文档:
<project>
<!-- Some long comment -->
<!-- On several lines -->
<name>Name</name> <!-- And here too -->
<version>1.2.3</version>
</project>
这是所需的结果文档(请注意版本已更改):
<project>
<!-- Some long comment -->
<!-- On several lines -->
<name>Name</name> <!-- And here too -->
<version>3.2.1</version>
</project>
所以结果保留了源的所有格式,只有版本标签内容发生了变化。
不幸的是,我找不到使用标准 Clojure(或 Java)库的方法。当然,它们确实支持 XML 字符串表示的基本缩进,但这对我来说还不够。
有没有办法用一些 XML 操作库来做到这一点(最好在 Clojure 中,但我猜 Java 也很好),或者我必须退回到纯文本/正则表达式替换?(真的,我不希望XML 标签从我的眼睛中泄漏出来,这应该是最后的手段......)