org.dom4j.DocumentException: Error on line 1 of document : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:278)
.....
Nested exception:
org.xml.sax.SAXParseException: Content is not allowed in prolog.
....
解决方案:参考该博客 (https://www.cnblogs.com/kissfu/p/6207117.html)
网上所述总结来说就是 解析内容内包含BOM 。这个标记是看不到的,流里面有这个标记而已。
BOM:Byte Order Mark,中文名字节顺序标记。UCS规范建议在传输字节流前,先传输BOM来判断字节顺序。
其实UTF-8是不需要用BOM来表明字节顺序的,但是可以 用BOM来表明编码方式。BOM的UTF-8编码是EF BB BF,所以呢,如果接受者收到EF BB BF开头的字节流,就说明它是UTF-8编码了。
解决办法:
如果解析的是文件 :
可以用UltraEdit或者EmEditor打开XML