为什么dom4j文档对象将XML EOL \ r \ n转换为\ n

时间:2017-11-30 04:33:10

标签: java xml xml-parsing dom4j

我使用DOM4J jar解析xml字符串(我试过1.6.1& 2.0.2)下面是我的示例代码

SAXReader reader = new SAXReader();
InputSource inputSource = new InputSource(new StringReader("<root xml:space='preserve'>\r\n<emp>\r\n<name>raj</name>\r\n</emp>\r\n</root>"));
Document document = null;

try {
    document = reader.read(inputSource);
} catch (DocumentException e1) {
    e1.printStackTrace();
}       
String st = document.asXML(); //When I debug I can see below value in this st variable
//<root xml:space='preserve'>\n<emp>\n<name>raj</name>\n</emp>\n</root>

为什么将XML EOL(End of Line)从\ r \ n转换为\ n?

如果我想保留与“\ r \ n”相同的EOL,有没有可用的选项?

1 个答案:

答案 0 :(得分:0)

here授权:

  

为了简化应用程序的任务,XML处理器必须表现出来   好像它规范了外部解析实体中的所有换行符   (包括文档实体)在输入之前,在解析之前,通过   翻译双字符序列#xD #xA和任何#xD   #xA后面没有#xA字符。

您可以设置编写XML文档时使用的行分隔符:

OutputFormat#setLineSeparator(String)