2

我在 Java 中使用 org.w3c 和 javax.xml.parsers 来读取和写入 xml 文件。当我读取一个 xml 文件时,转义的换行符将被真正的换行符替换。当我将内容写回文件时,我会松动转义,文件的内容会无意中改变。所以

<somenode>First line.&#10;Second line</somenode>

将被替换为:

<somenode>First line.
Second line.</somenode>

在将 xml 内容写回磁盘之前,我尝试过:

String content = node.getTextContent().replace("\n","&#10;");
node.setTextContent(content);

当然不行,会被转义到 &#10; 在文件中。

我不想用 CDATA 标签乱扔文件!

我想做的是合法的 XML 输出,所以必须有办法做到这一点。

提前感谢您的任何想法:)

4

1 回答 1

0

通过为 JAXB Marshaller 设置以下属性来做到这一点:

marshaller.setProperty("jaxb.encoding", "Unicode");

于 2013-07-05T13:05:16.510 回答