sax解析xml运行出现错误
来源:互联网 发布:尤里复仇 mod 知乎 编辑:程序博客网 时间:2024/05/21 10:51
sax解析xml运行出现错误org.xml.sax.SAXParseException: Content is not allowed in prolog.
原因及其解决办法:
1.xml编码错误
该xml是UTF-8编码的,如果该文件通过UltraEdit编辑后,会在无BOM头的UTF-8文件中加入BOM,但是DOM4j不认这个BOM(dom4j1.3),解决的办法可以通过升级dom4j到1.6解决www.dom4j.org
什么是BOM?http://www.unicode.org/faq/utf_bom.html#22
Unicode规范中有一个BOM的概念。BOM——Byte Order Mark,就是字节序标记。在这里找到一段关于BOM的说明:
在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符"ZERO WIDTH NO-BREAK SPACE"。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符"ZERO WIDTH NO-BREAK SPACE"又被称作BOM。
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。
Windows就是使用BOM来标记文本文件的编码方式的。
2.xml文件存在非法字符
把xml 动手敲一遍,删除不该有的间隔符:比如空格,制表符(TAB)等。
异常提示是Content is not allowed in prolog.意思就是说文件开头的时候有问题。
怎么去掉BOM:
首先windows自带的记事本会在保存UTF-8编码的文件时不管是否含有BOM一律加上BOM,所以千万别用记事本。比较新版本的UltraEdit(以下简称UE,大家都是这么叫的)都对BOM支持比较好,所以推荐使用新版本的UE来解决这个问题。我用的版本是UltraEdit-32 11.00a+中文版。首先打开UE,选择菜单栏“高级”-“配置”,出现一个选项卡窗口,在“常规”选项卡中找到“保存时对所有UTF-8文件头标记(BOM)”和“对在UltraEdit里创建的新文件写入UTF-8文件头标记(如上面)”,把它们的复选框都取消不选,然后确定。这个时候UE默认情况下就不会对没有BOM的文件加入BOM,注意如果不执行上述操作UE默认也是会加的!那已经含有BOM的文件如何清除BOM呢?下面演示给大家。首先打开文件,选择菜单栏“文件”-“格式转换”-“UTF-8 转 ASCII”,这样文件会被转为ASCII编码,BOM就不会存在了,因为上面说过BOM是在UCS编码的头部的,然后再选择菜单栏“文件”-“格式转换”-“ASCII 转 UTF-8(Unicode编辑)”,这个时候文件会被转回为UTF-8编码,因为我们上面选了不自动加BOM,所以这个时候的文件是不带BOM的,然后保存文件。整个操作过程就完毕了。
- sax解析xml运行出现错误
- sax解析xml运行出现错误org.xml.sax.SAXParseException: Content is not allowed in prolog.
- sax解析xml运行出现错误org.xml.sax.SAXParseException: Content is not allowed in prolog
- 用dom或者sax解析xml运行出现错误Content is not allowed in prolog.
- 安卓SAX解析XML出现二次解析-------矫正我们错误的认知
- SAX解析xml出现的问题
- 使用 SAX 处理 XML 解析中的错误
- 解析xml出现Can't create default XMLReader; is system property org.xml.sax.driver set?错误
- [XML] SAX解析XML
- 【XML】SAX解析XML
- XML解析(SAX解析)
- XML解析:SAX解析
- Study SAX《SAX解析XML》
- sax解析xml文件出现编码错误问题Invalid byte 1 of 1-byte UTF-8 sequence.
- xml解析出现的错误
- SAX解析XML出现文本丢失的解决方法之一
- android SAX解析xml流时报ExpatParser$ParseException错误解决方法
- 使用SAX解析XML
- 类与类之间的几种关系
- 简单程序
- Maven零散笔记——常用配置
- java并发基础
- 重装系统时断电或强制关机导致硬盘故障的解决
- sax解析xml运行出现错误
- android布局
- 作为程序员你必须知道的几点
- 知识小科普!像素英寸与DPI的那些事儿
- heat项目动态(2015.9.11)
- 哈希表的工作原理
- 远程桌面无法使用剪切板的有效解决方法
- 25个Java机器学习的工具与库(英)
- hadoop1.0的伪分布安装