我有一个Android应用程序,它使用SAX解析器从XML文件中提取数据。某些数据存在于某些CDATA标记中,有时包含换行符。解析期间将删除这些换行符。我该如何保存它们?
顺便说一下,我以为我找到了答案here,但放了“& #xA;”在CDATA标签内部只会产生“& #xA;”当我解析它时。
有人有任何建议吗?
谢谢。
答案 0 :(得分:2)
解析器不会删除换行符,无论它们是常规字符还是CDATA部分。但在这两种情况下,各种换行符(Unix,Windows,Mac)都被标准化为单字符规范(“unix”,\ n)换行。没有办法阻止这种规范化的发生,除非使用像建议的那样的字符实体;这不能在CDATA部分完成,因为那里禁用了实体处理。
但为什么要阻止这种正常化呢?如果你想要显示它,你可以用你想要的任何本地换行替换\ n(\ r代表mac,或者\ r \ n序列代表windows)。