我正在尝试解析并加载XML文档,但是当我在扩展XmlObject的类上调用parse方法时,我遇到了这个异常。不幸的是,它没有让我知道哪个元素是意外的,这是我的问题。
我无法为此分享代码,但我可以尝试在必要时提供更多信息。
答案 0 :(得分:1)
无法共享代码或输入数据,您可以考虑以下方法。这是一种非常常见的二分法诊断方法,我担心,事实上你可能已经开始了......
尝试通过删除部分XML来减小输入XML的大小,确保底层XML文档保持良好格式且可能有效(如果解析器的设置需要有效性)。如果你保持有效性,这可能需要改变模式(DTD或其他)的[副本],因为在剪切和尝试方法期间可能会删除任务... ...顺便说一句,错误消息似乎暗示更多一个基本的良构性断言问题的验证问题。
除非对触发解析器投诉的区域有特别的预感,否则我们通常会删除(或重新添加,当事情开始工作时)大约是先前剪切或重新添加的一半。
你也可以从尝试一个基本上空的文件开始,断言解析器确实可以正常工作......还有一个想法是“划分为优先级”:是XML输入还是解析器中的问题? (记住可能有两个问题,一个在输入中,一个在解析器中,而这些问题甚至可能是无关的......)
对不起belabor基本的诊断技术,你可能会很流利...
答案 1 :(得分:1)
你应该检查你传递给方法parse()的参数; 如果你直接传递一个字符串来解析或文件或输入流(File / InputStream / String)等。
答案 2 :(得分:1)
异常是由XML文件的长度引起的。如果您在文件中添加或删除一个字符,解析器将会成功。
问题出现在XMLBeans所依赖的第三方PiccoloLexer库中。它已在修订版959082中修复,但尚未应用于xbean 2.5 jar。
XMLBeans - Problem with XML files if length is exactly 8193bytes