`

SAX Content is not allowed in prolog解决

    博客分类:
  • java
 
阅读更多
使用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头的方式
  • 大小: 28.2 KB
分享到:
评论

相关推荐

    SAX符号化序列范例源码

    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包 SAX的jar包SAX的jar包 SAX的jar包 SAX的jar包

    dom解析和sax解析

    DOM(Document Object Model)解析和SAX(Simple API for XML)解析是两种常见的XML文档解析方式,它们在处理XML数据时有不同的策略和优缺点。 DOM解析是一种基于树型结构的XML解析方法。当一个XML文档被DOM解析器...

    org.xml.sax.SAXException: Invalid element

    NULL 博文链接:https://wilian.iteye.com/blog/1992365

    SAX解析网络编程

    SAX(Simple API for XML)是一种基于事件驱动的XML解析方式,它在网络编程中扮演着重要角色,特别是在处理大型XML文档时,由于其高效、内存占用小的特点,被广泛采用。本文将深入探讨SAX解析在网络编程中的应用及其...

    sax9.0解析XML

    SAX(Simple API for XML)是一种轻量级的解析XML的API,它是Java平台上的一个标准接口,用于处理XML文档。SAX9.0是该API的一个特定版本,提供了更高效、更灵活的XML解析能力。这个版本可能包含了对XML 1.0和1.1规范...

    SAX解析.pdf

    SAX解析是一种流式的XML解析方式,它使用了一种基于事件的模型来处理XML文档。开发者不需要在内存中构建整个文档的树形结构,而是通过响应XML解析器发出的事件来处理XML文档。这种方式特别适合处理大型的XML文件,...

    SAX类解析XML

    在处理大型XML文档时,SAX(Simple API for XML)解析器是一种高效的流式解析方法,它不会一次性加载整个XML文档到内存,而是逐个事件地处理XML元素,从而节省资源。 SAX解析XML的基本概念: 1. 事件驱动:SAX解析...

    SAX解析XML文件实例

    SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...

    java中的sax解析方案

    Java中的SAX解析方案是一种高效的XML处理方法,尤其适用于大体积的XML文件。SAX(Simple API for XML)是基于事件驱动的解析器,它不会像DOM解析那样将整个XML文档加载到内存中,而是逐行读取并触发相应的事件处理器...

    SAX解析XML源码

    在Android开发中,处理XML数据时,我们常常会遇到两种主要的解析方式:DOM(Document Object Model)和SAX(Simple API for XML)。本篇主要探讨的是SAX解析XML的源码实现。 SAX解析器是一种事件驱动的解析器,它...

    sax解析xml文件

    SAX(Simple API for XML)是一种轻量级的XML解析技术,主要用于读取XML文档。相较于DOM(Document Object Model)解析器,SAX解析器占用更少的内存和处理时间,因为它不会一次性加载整个XML文档到内存,而是采用...

    SAX 实例教程及代码

    SAX(Simple API for XML)是一种轻量级的解析XML数据的方法,相比于DOM解析,它更节省内存,更适合处理大型XML文件。SAX是事件驱动的解析器,它读取XML文档并触发一系列的事件,如开始文档、开始元素、字符数据等,...

    Sax解析XML文件解析

    SAX(Simple API for XML)是XML解析的一种方法,它以事件驱动的方式处理XML文档,非常适合处理大体积的XML文件,因为它不需要一次性加载整个文件到内存,而是逐行读取,因此节省了资源。 **SAX解析XML的基本原理:...

    SAX处理是如何工作的

    ### SAX处理是如何工作的 #### 一、SAX简介 SAX (Simple API for XML) 是一种基于事件驱动的XML解析方式。与DOM (Document Object Model) 解析方式不同,SAX 不会在内存中构建整个XML文档的树状结构,而是随着解析...

    dom4j下sax解析xml

    DOM(Document Object Model)和SAX(Simple API for XML)是两种主要的XML解析方法。在Java编程中,dom4j库提供了对这两种解析方式的支持。 **DOM解析**: DOM解析器将整个XML文档加载到内存中,创建一个树形结构...

    Android之SAX解析XML

    本文将深入探讨如何在Android环境中使用SAX(Simple API for XML)解析XML文件。SAX是一种事件驱动的解析器,它在读取XML文档时触发一系列事件,开发者可以注册事件处理器来处理这些事件,从而实现对XML数据的高效、...

    sax包与jdom包

    在Java世界中,XML(可扩展标记语言)作为一种数据交换格式,被广泛应用于...在实际项目中,可能还会结合DOM(Document Object Model)、StAX(Streaming API for XML)等其他解析器,以找到最合适的XML处理解决方案。

    poi 自己写的excel sax方式导入大量数据

    为了解决这个问题,Apache POI 提供了SAX解析器,它是一种基于事件驱动的解析方式,可以有效地处理大型Excel文件。 SAX(Simple API for XML)解析方式与DOM不同,它不会一次性加载整个文件到内存,而是逐行读取,...

Global site tag (gtag.js) - Google Analytics