当我解析jdom的xml文档时,我发现一些'\ r'字符丢失了

时间:2011-05-18 03:33:49

标签: java xml jdom

当我通过jdom解析xml文档时,我发现在Document对象中丢失了一些'\ r'字符。

例如: AA \ r \ NBB

解析之后,我发现元素'b'的属性'text'是'aa \ nbb'。

有人知道为什么原来的'\ r'会丢失。任何建议表示赞赏。

感谢。

2 个答案:

答案 0 :(得分:4)

xml规范要求解析器将行结尾标准化为\ n,请参阅section on line endings

答案 1 :(得分:2)

正如@superfell指出的那样,XML规范需要 XML解析器来将行结尾规范化为'\n'个字符。

你能做些什么?不是很多!

  1. 您可以使用其值为或包含回车符的字符实体。我对normalization rules的解读是,它将变成规范化XML中的回车符。但是,这意味着您必须更改输入XML。

  2. 您可以更改应用程序,以便在从DOM中提取后,使用适当的特定于平台的行结尾替换换行符。

  3. (您甚至可以更改XML以表示编码形式的文本;例如十六进制或base64。但是,这非常难看,并且违背了使用XML的目的。)

  4. 其中,选项2似乎最没有吸引力......