使用sax解析XML时,经常会遇到Content is not allowed in prolog异常,原因有两种
1、XML格式错误
2、XML文件有BOM头
对应的有两种检测和处理办法
1、XML格式错误
这种错误是XML拼装不完整,使用浏览器打开时,就会提示XML节点错误,比较好定位查找,
还有一种会引起这种错误的原因,是由于字符编码不正常,特别是有中文字符时,XML解析
时可能是乱码,而乱码有时会造成xml节点的破坏。
可以通过修改XML节点,转换XML文件的字符编码,来解决这种问题
2、XML文件有BOM头
有BOM头会造成SAX解析Content is not allowed in prolog异常
有BOM头不好检测,可以使用16进制方式,打开XML文件,文件开头不是以XML开始的,有特殊字符,如图所示:
使用ultraedit另存为无BOM的UTF-8文件,后再进行解析就可以了
BOM的检测和说明
Java处理文件BOM头的方式
1、XML格式错误
2、XML文件有BOM头
对应的有两种检测和处理办法
1、XML格式错误
这种错误是XML拼装不完整,使用浏览器打开时,就会提示XML节点错误,比较好定位查找,
还有一种会引起这种错误的原因,是由于字符编码不正常,特别是有中文字符时,XML解析
时可能是乱码,而乱码有时会造成xml节点的破坏。
可以通过修改XML节点,转换XML文件的字符编码,来解决这种问题
2、XML文件有BOM头
有BOM头会造成SAX解析Content is not allowed in prolog异常
有BOM头不好检测,可以使用16进制方式,打开XML文件,文件开头不是以XML开始的,有特殊字符,如图所示:

使用ultraedit另存为无BOM的UTF-8文件,后再进行解析就可以了
BOM的检测和说明
Java处理文件BOM头的方式
发表评论
-
charles4.2下载与破解方法以及配置https
2020-02-26 09:03 2有两个抓包工具 一个是fidder,一个是charles,两个 ... -
序列号批量生成算法
2019-12-05 14:11 0业务处理过程当中,经常需要生成订单号、序列号等,简单的可 ... -
使用ANTLR处理文本
2019-08-28 17:32 807引用 使用 Antlr 处理文本 https://www.ib ... -
解决maven-metadata.xml文件下载卡死问题
2019-04-11 14:02 4100http://192.168.1.110:8081/nexus ... -
rsync备份和删除指定文件
2018-01-02 10:23 2094文件异地备份时,需要将本地文件合并到服务器上,且不能删除服务器 ... -
javaLocale格式化日期和数字
2017-08-25 09:26 918public static void main(Strin ... -
centos6 tomcat 启动脚本 tomcat服务
2017-08-23 11:24 1464系统自动启动tomcat 复制该脚本到/etc/init.d/ ... -
win7 命令行改IP和DNS
2016-12-21 18:35 780使用管理员权限运行CMD //改DNS netsh ... -
jenkins中集成sonar,使用findbug、pmd、checkstyle提升代码质量
2016-09-29 14:58 6232实际上jenkins单独也 ... -
jenkins 集成sonar
2016-09-18 10:14 0jenkins集成sonar可以从插件中心直接更新安装 son ... -
activeMQ5.14权限配置
2016-08-17 13:47 2694activeMQ默认的消息队列没有用户名和密码,可以直接通过T ... -
solaris 使用解压版的jdk
2016-07-27 15:17 794solaris上配置jdk其实也很简单 由于solaris有 ... -
solaris tomcat开机启动
2016-07-27 16:17 639创建文件夹/var/svc/manifes ... -
HibernateTemplate Vs HibernateDaoSupport Vs Direct Hibernate Access
2016-07-26 11:07 745http://forum.spring.io/forum/sp ... -
spring mvc mybatis will not be managed by Spring
2016-07-20 17:30 9926项目运行时发现事务提交不完整,回滚时只能回滚一半。 系统配置 ... -
java里判断一点是否在某个区域
2016-06-03 17:47 1899import java.awt.geom.Path2D ... -
12306的技术升级
2016-04-20 16:17 1064升级的核心是余票查询的升级,余票查询使用存储过程,sybase ... -
工作流的123
2016-04-20 12:58 594三分钟了解Activity工作流 工作流一般会给开发人员提供流 ... -
sping mvc 使用@Value注解为controller注入值
2016-04-17 17:39 10873spring mvc 里有两个配置文件, 第一个,为sprin ... -
googleapis.com域名访问慢的解决办法
2016-04-13 12:09 10641、安装火狐 2、安装插件ReplaceGoogleCDN
相关推荐
n is the number of symbols in the low dimensional approximation of the sub sequence. alphabet_size is the number of discrete symbols. 2 , although alphabet_size = 2 is a special "useless" case. ...
sax.jar sax.jar sax.jar sax.jar sax.jar sax.jar sax.jar
SAX的jar包 SAX的jar包SAX的jar包 SAX的jar包 SAX的jar包
DOM(Document Object Model)解析和SAX(Simple API for XML)解析是两种常见的XML文档解析方式,它们在处理XML数据时有不同的策略和优缺点。 DOM解析是一种基于树型结构的XML解析方法。当一个XML文档被DOM解析器...
NULL 博文链接:https://wilian.iteye.com/blog/1992365
SAX(Simple API for XML)是一种基于事件驱动的XML解析方式,它在网络编程中扮演着重要角色,特别是在处理大型XML文档时,由于其高效、内存占用小的特点,被广泛采用。本文将深入探讨SAX解析在网络编程中的应用及其...
SAX(Simple API for XML)是一种轻量级的解析XML的API,它是Java平台上的一个标准接口,用于处理XML文档。SAX9.0是该API的一个特定版本,提供了更高效、更灵活的XML解析能力。这个版本可能包含了对XML 1.0和1.1规范...
SAX解析是一种流式的XML解析方式,它使用了一种基于事件的模型来处理XML文档。开发者不需要在内存中构建整个文档的树形结构,而是通过响应XML解析器发出的事件来处理XML文档。这种方式特别适合处理大型的XML文件,...
在处理大型XML文档时,SAX(Simple API for XML)解析器是一种高效的流式解析方法,它不会一次性加载整个XML文档到内存,而是逐个事件地处理XML元素,从而节省资源。 SAX解析XML的基本概念: 1. 事件驱动:SAX解析...
SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...
Java中的SAX解析方案是一种高效的XML处理方法,尤其适用于大体积的XML文件。SAX(Simple API for XML)是基于事件驱动的解析器,它不会像DOM解析那样将整个XML文档加载到内存中,而是逐行读取并触发相应的事件处理器...
在Android开发中,处理XML数据时,我们常常会遇到两种主要的解析方式:DOM(Document Object Model)和SAX(Simple API for XML)。本篇主要探讨的是SAX解析XML的源码实现。 SAX解析器是一种事件驱动的解析器,它...
SAX(Simple API for XML)是一种轻量级的XML解析技术,主要用于读取XML文档。相较于DOM(Document Object Model)解析器,SAX解析器占用更少的内存和处理时间,因为它不会一次性加载整个XML文档到内存,而是采用...
SAX(Simple API for XML)是一种轻量级的解析XML数据的方法,相比于DOM解析,它更节省内存,更适合处理大型XML文件。SAX是事件驱动的解析器,它读取XML文档并触发一系列的事件,如开始文档、开始元素、字符数据等,...
SAX(Simple API for XML)是XML解析的一种方法,它以事件驱动的方式处理XML文档,非常适合处理大体积的XML文件,因为它不需要一次性加载整个文件到内存,而是逐行读取,因此节省了资源。 **SAX解析XML的基本原理:...
### SAX处理是如何工作的 #### 一、SAX简介 SAX (Simple API for XML) 是一种基于事件驱动的XML解析方式。与DOM (Document Object Model) 解析方式不同,SAX 不会在内存中构建整个XML文档的树状结构,而是随着解析...
DOM(Document Object Model)和SAX(Simple API for XML)是两种主要的XML解析方法。在Java编程中,dom4j库提供了对这两种解析方式的支持。 **DOM解析**: DOM解析器将整个XML文档加载到内存中,创建一个树形结构...
本文将深入探讨如何在Android环境中使用SAX(Simple API for XML)解析XML文件。SAX是一种事件驱动的解析器,它在读取XML文档时触发一系列事件,开发者可以注册事件处理器来处理这些事件,从而实现对XML数据的高效、...
在Java世界中,XML(可扩展标记语言)作为一种数据交换格式,被广泛应用于...在实际项目中,可能还会结合DOM(Document Object Model)、StAX(Streaming API for XML)等其他解析器,以找到最合适的XML处理解决方案。
为了解决这个问题,Apache POI 提供了SAX解析器,它是一种基于事件驱动的解析方式,可以有效地处理大型Excel文件。 SAX(Simple API for XML)解析方式与DOM不同,它不会一次性加载整个文件到内存,而是逐行读取,...