1

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

例如: aa\r\nbb

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

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

谢谢。

4

2 回答 2

4

xml 规范要求解析器将行尾规范化为 \n,请参阅行尾部分

于 2011-05-18T03:41:51.250 回答
2

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

你能为这个做什么?不是很多!

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

  2. 您可以更改应用程序以将换行符替换为适当的特定于平台的行尾......在从 DOM 中提取它们之后。

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

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

于 2011-05-18T04:38:32.500 回答