当我通过jdom解析xml文档时,我发现在Document对象中丢失了一些'\ r'字符。
例如: AA \ r \ NBB
解析之后,我发现元素'b'的属性'text'是'aa \ nbb'。
有人知道为什么原来的'\ r'会丢失。任何建议表示赞赏。
感谢。
答案 0 :(得分:4)
xml规范要求解析器将行结尾标准化为\ n,请参阅section on line endings
答案 1 :(得分:2)
正如@superfell指出的那样,XML规范需要 XML解析器来将行结尾规范化为'\n'
个字符。
你能做些什么?不是很多!
您可以使用其值为或包含回车符的字符实体。我对normalization rules的解读是,它将变成规范化XML中的回车符。但是,这意味着您必须更改输入XML。
您可以更改应用程序,以便在从DOM中提取后,使用适当的特定于平台的行结尾替换换行符。
(您甚至可以更改XML以表示编码形式的文本;例如十六进制或base64。但是,这非常难看,并且违背了使用XML的目的。)
其中,选项2似乎最没有吸引力......