在写入XML时强制转义字符

时间:2013-06-26 11:07:42

标签: java xml escaping

我在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);

当然它不起作用,它将被转移到&amp; amp;#10;在文件中。

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

我想要做的是合法的XML输出,所以必须有办法。

提前感谢任何想法:)

1 个答案:

答案 0 :(得分:0)

通过为JAXB Marshaller设置以下属性来执行此操作:

marshaller.setProperty(“jaxb.encoding”,“Unicode”);