2009-09-10 59 views
2

我想解析并加载一个XML文档,但是当我在扩展XmlObject的类上调用解析方法时,我收到了这个异常。不幸的是,它没有给出我意想不到的元素的想法,这是我的问题。带有“Unexpected element:CDATA”消息的org.apache.xmlbeans.XmlException是什么意思?

我无法分享此代码,但我可以尝试在必要时提供更多信息。

+0

有谷歌的一大堆命中这个..你有没有发现其中的任何照明? – skaffman

+0

虽然你不能'共享代码',你可以共享XML文档本身或其中的一部分吗?或者,其他建议,你可以尝试使用另一个XML文档,它可以在普通的XML编辑器(如XML Notpad)中正常读取吗? – mjv

+0

不能共享任何东西......专有的东西和所有的东西,并且XML文档在记事本中打开正常 - 它格式良好并根据模式进行验证 –

回答

1

不能共享代码或输入数据,您可以考虑以下方法。这是一个很普通的二分的方法来诊断,我很害怕,的确你可以很容易地开始吧...

尝试通过去除它的部分减少输入XML的大小,确保底层XML文档保持完好,并且可能有效(如果解析器设置中需要有效性)。如果你保持有效性,这可能需要修改Schema(DTD或其他)的副本,因为在切入和尝试方法期间可能会删除权限元素......顺便说一句,错误消息似乎更多地提示一个验证问题,即一个基本的良构性断言问题。

除非人们对触发解析器投诉的区域有特别的预感,否则我们通常会删除(或在工作开始时重新添加)大约一半之前剪切或重新添加的内容。

您也可以尝试使用大部分为空的文件来断言解析器确实可以工作......还有一种想法是“分而合之”:XML输入或解析器中的问题? (记住可能存在两个问题,一个是输入问题,另一个问题是解析器问题,甚至可能与此问题无关......)

对不起,您可能会流利使用的基本诊断技术..

+0

换句话说,“删除东西,直到它工作”...?? – skaffman

+0

是的,并且sttart加入回来,当它开始工作时,简单但有效和通用! – mjv

1

您应该检查传递给方法parse()的参数; 如果你直接传递一个字符串来相应地解析或文件或输入流(File/InputStream/String)等。

相关问题