DOM解析UTF-8编码的xml文件时出错

问题描述

xml文件头为:<?xml version="1.0" encoding="UTF-8"?>保存时选择的编码方式也是UTF-8,利用DOM解析时报这样的错误:org.xml.sax.SAXParseException: Document root element is missing.at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182)at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3170)at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:501)at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:208)at com.file.XmlParse.Parse(XmlParse.java:33)at com.file.XmlParse.main(XmlParse.java:70)谁能告诉我应该怎么处理这种错误呢,要求xml文件头和编码方式都必须是UTF-8不能变,在这里先谢谢了。我试过,如果xml文件头改为:<?xml version="1.0" encoding="GBK"?>,编码方式改为ANSI,则能够正常解析中文。

解决方案

有些编辑器,比如windows的记事本在保存utf8时,会加上bom。可能是导致那个异常的原因。基本上你需要换个编辑器,保存时有without bom选项的即可。比如notepad ++eclipse的文本编辑器也是不会加bom的。参考http://daimojingdeyu.iteye.com/blog/397661
解决方案二:
保存文件时选择 UTF-8保存 如使用editplus 文件--另存为时选择字符集即你文件默认可能是ANSI 但是以utf-8读就会有问题
解决方案三:
要是使用eclipse 文件右击(package视图)properties --> resources --> 选择text file encoding选择编码为你想要的编码即可
解决方案四:
用ultraedit的转换功能,文件--转换-- 转换为utf-8试试。

时间: 2024-09-28 18:52:25

DOM解析UTF-8编码的xml文件时出错的相关文章

java 解析xml文件-在JAVA中解析XML文件时遇上难题,向各位大虾求助。

问题描述 在JAVA中解析XML文件时遇上难题,向各位大虾求助. 在服务器进程中编写登录时出现以下错误提示: Exception in thread "Thread-0" java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl cannot be cast to javax.swing.text.Document at server.ServerThread.Lo

java如何解析含有html内容的xml文件

问题描述 java如何解析含有html内容的xml文件 是这样的,现在有个xml文件,实际上是个只有头部是xml标签的文件,内容主体是html写成的,现在想要解析这个xml文件,提取其中的数据,不知该用何种方法. 试过dom4j和jsoup,这两个一个适合用来解析纯xml文件,一个适合解析纯html文件,但是不知如何解析嵌套在xml文件里的html文件.这是我要解析的xml文件截图一部分: 这是xml文件的一部分: <?xml version="1.0"?> - - --

用XStream 解析xml文件时,遇到&amp;amp;lt;![cdata[]]&amp;amp;gt;就报错,怎么办

问题描述 用XStream 解析xml文件时,遇到<![cdata[]]>就报错,怎么办 求给位大牛帮忙,为何我用XStream解析xml文件,遇到<![cdata[]]>,就解析不了,很着急困惑,呜呜呜 解决方案 这个CDATA不是大写吗!!!!!!

急急!为什么Applet中运用JDOM解析XML文件时,构造文档时失败啊

问题描述 为什么Applet中运用JDOM解析XML文件时,构造文档时失败啊SAXBuildersb=newSAXBuilder();Documentdoc=sb.build("E:/sample.xml");在main()程序中就不会有这样的问题,是不是安全问题请各路大侠帮忙了,谢啦!!!

android xm l pull-android 用pull 解析xml文件时,直接遇到文件结束(END_DOCUMENT)

问题描述 android 用pull 解析xml文件时,直接遇到文件结束(END_DOCUMENT) xml 文件 <?xml version="1.0" encoding="UTF-8"?> xmlns:gd="http://schemas.google.com/g/2005" xmlns:opensearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:db=

xml-C++用智能指针循环打开XML文件时指针释放时出错

问题描述 C++用智能指针循环打开XML文件时指针释放时出错 小弟在VS2012中用C++编一个打开XML的程序中遇到了些问题.我打开XML的方法是通过打开一个索引XML文件(Index)然后获得子XML文件的路径,然后在根据这些路径用循环的方式打开子XML文件获取里面的信息.但是,我的程序不知道为什么出错,当子XML是只有一个时,程序就可以正常运行,当子XML是多个的时候,程序就提升出错,有数据中断.我设了断点查看错误原因,具体是在读完子XML,并进行完xmlfile.UnLoadXML()后

c++-报错“使用简体中文(GB2312)编码加载文件时,有些字节已用Unicode替换字符替换”

问题描述 报错"使用简体中文(GB2312)编码加载文件时,有些字节已用Unicode替换字符替换" 以前遇到过这样的问题,是因为我要往一个不存在的文件夹路径写文件,这次我的程序已经运行到最后的return语句了,还会这样报错!这是为什么?希望有大神不吝赐教! 解决方案 贴下代码,设置字符集和出错的地方 解决方案二: 打开你要读的文件,先转为GB 再试试,看出错原因可能是你要读的文件中有Unicode编码的字符.或者你程序设置为Unicode,再去读文件试试.

cocos2dx3.x-Cocos3.x 移植到Android平台 xml文件读取出错,搞了两天了,大神们帮帮忙。求

问题描述 Cocos3.x 移植到Android平台 xml文件读取出错,搞了两天了,大神们帮帮忙.求 Cocos3.x 移植到Android平台 xml文件读取出错,搞了两天了,大神们帮帮忙.网上的代码也看完了,不顶用.想要个人来交流. 解决方案 顶起来,大神们,小弟今天是要离不开公司了.拜托了

xml-为什么在C++用智能指针循环打开XML文件时指针释放时出错

问题描述 为什么在C++用智能指针循环打开XML文件时指针释放时出错 小弟在VS2012中用C++编一个打开XML的程序中遇到了些问题.我打开XML的方法是通过打开一个索引XML文件(Index)然后获得子XML文件的路径,然后在根据这些路径用循环的方式打开子XML文件获取里面的信息.但是,我的程序不知道为什么出错,当子XML是只有一个时,程序就可以正常运行,当子XML是多个的时候,程序就提升出错,有数据中断.我设了断点查看错误原因,具体是在读完子XML,并进行完xmlfile.UnLoadXM