今天在调试解析XML程序的时候,出现了如下异常:
org.jdom.input.JDOMParseException: Error on line 18046 of document XX.xml: An invalid XML character (Unicode: 0x18) was found in the CDATA section.
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:501)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:928)
at com.zhongsou.apabi.main.XMLImport.readXMLFile(XMLImport.java:111)
at com.zhongsou.apabi.main.XMLImport.main(XMLImport.java:421)
Caused by: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x18) was found in the CDATA section.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1411)
结果在google和百度上搜,都没有好的解决方法,最后自己解决了。
发生原因:数据中出现了非法字符(我这里显示是一个小方块:utf-8编码),导致jdom解析的时候,不认识这个字符而出错。
ps:我是通过2分法在文件中查到的。
希望都发生相同问题的朋友有帮助。