解析和修改 xml 文件时保留现有缩进、空格等

Ste*_*hai 5 java xml indentation xml-parsing

是否有一些 Java 库可以帮助我解析 XML 文件,更改某些内容,然后将输出写入新的 XML 文件,该文件在缩进、空格方面基本上与第一个文件完全相同?

我尝试过 Jdom,但它似乎是 XMLOutputter 类更改了我原始 xml 的缩进。

基本上,如果我的输入 xml 文件如下所示:

<root><node>A</node></root>
Run Code Online (Sandbox Code Playgroud)

我想将 A 更改为 B,输出应如下所示:

<root><node>B</node></root>
Run Code Online (Sandbox Code Playgroud)

不喜欢

<root>
    <node>B</node>
</root>
Run Code Online (Sandbox Code Playgroud)

就像 Jdom 输出它一样。

这只是一个例子,但我的观点是:是否有一些 xml 解析库考虑了初始 xml 文件的格式?

Knu*_*ann 0

使用Format.getRawFormat()for XMLOutputter

XMLOutputter outputter = new XMLOutputter(Format.getRawFormat());
outputter.outputString(document);
Run Code Online (Sandbox Code Playgroud)

Format.getRawFormat() 的文档说:

“返回一个新的 Format 对象,该对象不执行空格更改,使用 UTF-8 编码,不扩展空元素,包括声明和编码,并使用默认的实体转义策略。”