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