我搜索了一个答案,却找不到答案.
我有一个由服务器生成的长xml.我想使用xslt显示一些节点.
问题是:当我在浏览器上打开xml时,我得到:XML解析失败,XML解析失败:语法错误,编码中的非法字节序列
错误位于其中一个节点内的cdata内,<![CDATA[并以其结尾]]>
错误是:,和数百个字符一样.
根据我的理解,如果它在cdata中它应该忽略或逃避它,这不应该发生.
xml编码是utf8.
谢谢您的帮助.
你说"xml编码是utf8".你的解析器告诉你你错了.它找到了一个不能在UTF-8中出现的字节序列; 根据我的经验,当ISO 8859-1(ISO Latin 1)数据被错误地标记为UTF-8时经常会发生这种情况.
如果您在十六进制转储或类似工具中检查了相关数据并确认它是合法的UTF-8,那么您似乎有一个错误要向您的供应商报告.如果你还没有,那么它在这里说解析器可能是正确的,你的数据不太可能是UTF-8.找出它是什么,并正确声明它,或修复服务器的配置以使其生成UTF-8数据流,或使用字符编码转换实用程序将服务器的输出转换为UTF-8.
CDATA部分出现在被解析为XML的字符序列中; 他们声明他们的内容是字符数据而不是XML分隔符.CDATA部分不能也不能声明其内容是位,字节或八位字节的任意序列; 当一系列字符被识别为CDATA部分时,数据流编码中的位已经被转换为字符; 现在说"不要将这些八位字节解析为字符"已经太晚了!
| 归档时间: |
|
| 查看次数: |
3634 次 |
| 最近记录: |