将dom4j文档写入带有转义'\ r \ n \'的xml文件

时间:2010-02-12 14:20:29

标签: java xml dom4j

很抱歉询问相同的问题,但现在我想:

写一个dom4j文档,其中包含如下标签:

<Field>\r\n some text</Field>

到xml文件,但\r\n应转义为&#13;&#10;

org.dom4j.Document.asXml()

不起作用。

2 个答案:

答案 0 :(得分:1)

假设您的意思是文本节点中的CRLF序列(而不仅仅是文字反斜杠-r-backslash-n),您将无法说服XML序列化程序将它们写为&#13;&#10;,因为XML说你没必要。无论您是否逃避,该文档在XML术语中都是完全等效的。作为&#13;&#10;转义CRLF序列所需的唯一位置是属性值。

如果您确实必须生成此输出,则必须编写自己的XML序列化程序,该序列化程序遵循用于转义控制代码的特殊规则。但是如果你这样做是因为外部工具无法读取带有CRLF序列的XML元素,你应该集中精力修复该工具,因为如果它无法处理文本内容中的换行符,那么它就会被破坏,而不是一个合适的XML解析器

答案 1 :(得分:0)

走树,将String.replace应用于Text节点。