`
freeroy
  • 浏览: 74524 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java xml处理(dom4j,xstream,jdom,xmlbean),Content is not allowed in prolog异常解决

    博客分类:
  • Java
 
阅读更多

因由:做一个程序,过程中需要解析自定义的xml文件(utf-8)编码

 

问题:解析过程中出现Content is not allowed in prolog 异常

 

详细:

 

又是啃爹的字符集问题

 

又是可恶的xml操作

 

又是同软件版本有关

 

 

这个问题的原因大意,可以看下面文章:

 

http://weishuwei.iteye.com/blog/42872

 

 

如果解析xml的程序是dom4j,可以通过升级最新版本解决。

 

如果不是dom4j,可以尝试修改文件的编码,并去除BOM解决。

 

 

我的问题是,我不是用dom4j,尝试修改文件编码也不行。

 

 

 

 

这里只列出xstream的解决方案,其它的也可以顺推解决:

 

//构建对象,这里无啥问题,

//用什么构造函数、构造参数都可以

XStream xstream = new XStream(new DomDriver());

//下面是重点!!!

 

InputStream is = new FileInputStream(new File(configFilePath));

try {

Object object = xstream.fromXML(is);

System.out.println(object);

} finally {

is.close();

}

 

xstream.fromXML有多个重载方法,而这些方法,除inputSteam的参数版本外,其它的都不能成功通过。

 

 

原因分析:

经过查看源代码(当然,只看关键的),发现其他重载方法会使用reader对象。懂了吧,reader是读取一行的,自然地会跟BOM扯上关系!!!而我最后用的是流,HOHO~万能的流啊,解决了。

 

 

有人说,new XStream时,使用 Dom4jDriver不能解决吗?不是最新版dom4j就ok了吗?

 

明显地不是,这个跟dom4j无啥关系,关键是xstream用那种方式使用dom4j,如果是用reader,那问题依然是无解决的。

 

 

懂了吧~其它类似问题,都可以通过使用流的方式解决(推理而已)。

 

 

 

 

分享到:
评论

相关推荐

    xstream_dom4j_jdom_groovy解析xml

    本主题聚焦于四种不同的Java库——XStream、Dom4j、Groovy以及JDOM,它们都是用来解析和操作XML文档的工具。 1. **XStream**: XStream是一个Java库,它提供了将Java对象序列化为XML,以及从XML反序列化回Java对象...

    dom4j、XStream的jar包

    DOM4J是一个非常灵活且功能丰富的XML处理库,它提供了多种方式来操作XML文档,包括读取、写入、修改和查询。以下是DOM4J的主要知识点: 1. **DOM4J架构**:DOM4J基于事件驱动和SAX的解析器,同时也支持DOM和DOM4J...

    使用dom4j高效率xml解析,内涵demo程序,idea导入即可运行,适用于各种复杂xml的解析,给自己留作备份,有需要可下载。

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于配置文件、数据交换、文档存储等...在实际开发中,根据具体场景选择合适的方法,结合DOM4J提供的工具类,可以大大提高XML处理的效率和便捷性。

    基于XStream,DOM4J实现xml工具类可直接运行

    XStream和DOM4J是Java中处理XML的两个重要库,它们各自有着独特的特性和优势。 **XStream** XStream是一款开源的Java库,它将Java对象与XML进行相互转换。它的主要优点在于使用简单,通过简单的API即可实现对象到...

    将对象(java bean)转换为xml字符串

    在Java开发中,有时我们需要将Java Bean对象转换成XML字符串,以便于数据交换或存储。XStream库就是这样一个工具,它提供了一种简单且高效的方式来实现这个目标。XStream不仅能够将Java对象转换为XML,还可以反向将...

    java 解析xml所需要的dom4j包

    在这个场景中,我们关注的是使用DOM4J库进行XML处理。DOM4J是一个强大的Java库,它提供了丰富的API来处理XML,包括读取、写入、修改以及XPath查询。DOM4J在设计上考虑了灵活性和效率,使得开发者可以更方便地处理XML...

    dom4j-jdom封装和解析例子

    dom4j,jsoup,jdom,w3cdom,xstream使用代码工程 package ivyy.taobao.com.dom4j; import ivyy.taobao.com.entity.Address; import ivyy.taobao.com.entity.Location; import ivyy.taobao.com.entity.Point; import ...

    dom4j和XStream的最新版jar包以及简单示例demo(xml解析)

    解压后有一个文件夹(包含了dom4j和XStream的简单示例),一个dom4j.jar(用dom4j只需要把这个添加到项目里面),一个xstream-1.4.8的jar包、源码、说明文档.zip(用xstream就解压这个包然后放到项目里面)

    xml解析及使用XStream实现javaBean与xml之间的转换

    在`xmlAnalysis`文件夹中,可能包含了一个简单的Java程序,演示了如何使用DOM、SAX、StAX和XStream解析XML文件,并展示了XStream如何在JavaBean与XML之间进行转换。你可以运行这些代码,观察输出结果,以加深理解。...

    xStream xml to bean

    这个工具类的目标就是利用xStream的功能,方便地将XML文档转换为Java Bean对象,以及将Bean对象转换为XML字符串。 xStream的核心思想是通过反射和类型映射来实现对象与XML之间的转换。它使用一种称为“annoation”...

    微信开发用到的jar包:json 解析,dom4j-1.6.1.jar,xstream-1.3.1.jar

    DOM4J是一个非常优秀的Java XML API,它提供了全面而强大的DOM、SAX和JDOM的集成。在微信开发中,可能需要处理XML格式的微信API响应或配置文件。DOM4J提供了一种灵活的方式来读取、创建、修改和操作XML文档,比如...

    dom+xstream

    DOM4J是另一个流行的Java XML处理库,它扩展了DOM模型,提供了更方便和高效的API。DOM4J 1.6.1版本是一个成熟的、高性能的框架,适用于XML的读写、遍历、查询和修改。它支持XPath表达式,可以方便地查找和操作XML...

    dom4j解析XML的两个JAR包

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。DOM4J在Java社区中被广泛使用,尤其是在那些需要处理大量XML数据的应用中。这个压缩包包含两个...

    xstream 1.3.1.jar bean对象转换为xml

    XStream 是一个强大的Java库,它能够将Java对象序列化为XML,并且可以从XML反序列化回Java对象。在标题和描述中提到的"1.3.1.jar"是XStream的一个特定版本号,表示该库的一个稳定发行版。在这个版本中,XStream提供...

    Java用xStream拼接xml

    xStream简化了Java对象与XML之间的转换,使得在处理XML数据时,开发者无需关注底层的XML构造细节。在Web Service接口对接时,如果需要传递XML内容,使用xStream可以高效、便捷地完成XML的拼接。通过合理配置和使用,...

    java解析XML所需要的完整包(包括XStream.jar,dom4j.jar和xpull/xpp.jar)

    这三个库在Java XML处理中扮演着不同的角色:XStream提供了对象到XML的序列化和反序列化,dom4j提供了强大的XML文档操作能力,而XPP3作为基础解析器,确保了高效的数据读取。在开发过程中,根据需求选择合适的库组合...

    dom4j-1.6.1.jar和jaxen-1.1-beta-7.jar

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。...

    DOM4J,Jaxen,XStream,FastJson,Gson

    在Java开发中,数据序列化和XML处理是常见的任务,涉及到与JSON和XML格式的数据交互。本讲将探讨五个关键的库:DOM4J、Jaxen、XStream、FastJson和Gson,它们分别在XML解析和JSON操作中扮演着重要角色。 1. DOM4J:...

    dmo4j和xstream

    **dmo4j** 是一个强大的Java XML处理库,它提供了一种灵活且高性能的方式来读取、写入、操作和查询XML文档。dmo4j的功能主要包括: 1. **解析XML文档**:dom4j能够快速地将XML文件加载成Document对象,方便后续的...

    Dom4j封装和解析

    **正文** XML(eXtensible Markup Language)是一种标记语言,广泛用于数据交换和文档存储。在Java中,处理XML的库有很多,其中Dom4j是一个功能强大且...在Java项目中,掌握Dom4j的使用能极大地提高XML处理的效率。

Global site tag (gtag.js) - Google Analytics