在用dom4j解析xml时如果报下面这个错误:
org.dom4j.DocumentException: Error on line 1 of document
file:///d:/xxx.xml :
缺少文件根组件。 Nested exception: 缺少文件根组件。
这是因为xml解析器的问题,以前一直在web环境下跑程序,用的是xerces解析器,就不会报上面的错误。
但是独立运行的程序如果用jdk1.4.2和dom4j1.6.1时就回有上面的错误,因为用的是jdk自带的解析器
crimson。
解决办法就是
用xerces解析器,可以从tomcat中找到xercesImpl.jar和xml-api.jar放到工程中就可以了。
另外在jdk1.5下面也没有这个问题,应该是jdk1.5自带的解析器解决了这个问题了。
根本原因是xml含有bom头导致,就是EF BB BF。
如果报这个错误:Content is not allowed in prolog
使用dom4j1.6.1就ok了。