【发布时间】:2010-02-12 14:20:28
【问题描述】:
很抱歉问了同样的问题,但现在我想:
编写一个包含如下标签的 dom4j 文档:
<Field>\r\n some text</Field>
到 xml 文件,但 \r\n 应转义为 &#13;&#10;
org.dom4j.Document.asXml()
不工作。
【问题讨论】:
很抱歉问了同样的问题,但现在我想:
编写一个包含如下标签的 dom4j 文档:
<Field>\r\n some text</Field>
到 xml 文件,但 \r\n 应转义为 &#13;&#10;
org.dom4j.Document.asXml()
不工作。
【问题讨论】:
假设您的意思是文本节点中的 CRLF 序列(而不仅仅是文字反斜杠-r-反斜杠-n),您将无法说服 XML 序列化程序将它们写为 &#13;&#10;,因为 XML说你不必。该文档在 XML 术语中是绝对等价的,无论您是否对其进行转义。您需要将 CRLF 序列转义为 &#13;&#10; 的唯一位置是在属性值中。
如果您确实必须生成此输出,则必须编写自己的 XML 序列化程序,该序列化程序遵循特殊规则来转义控制代码。但是,如果您这样做是因为外部工具无法读取包含 CRLF 序列的 XML 元素,则您应该专注于修复该工具,因为如果它无法处理文本内容中的换行符,那么它就会损坏并且不是正确的 XML 解析器.
【讨论】:
遍历树,将 String.replace 应用于 Text 节点。
【讨论】: