4

我有一个使用 SAX 解析器从 XML 文件中提取数据的 Android 应用程序。某些数据位于某些 CDATA 标记中,有时包含换行符。这些换行符在解析过程中被删除。我该如何保存它们?

顺便说一句,我以为我在这里找到了答案,但是放置了“ ” 在 CDATA 标记内只会得到一个“ ” 当我解析它时。

有没有人有什么建议?

谢谢你。

4

1 回答 1

2

解析器不会删除换行符,无论它们是作为常规字符还是在 CDATA 部分中。但在这两种情况下,各种换行符(Unix、Windows、Mac)都被规范化为单字符规范(“unix”、\n)换行符。没有办法阻止这种规范化的发生,除非使用建议的字符实体;这不能在 CDATA 部分完成,因为实体处理在那里被禁用。

但是,您究竟为什么要阻止这种规范化呢?如果你想要这个显示,你可以用你想要的任何本地换行符替换 \n (\r 用于 mac,或 \r\n 序列用于 Windows)。

于 2010-12-15T05:45:09.247 回答