Pau*_*cas 7 java xml sax exception
我正在使用Java DocumentBuilder.parse(InputStream)来解析XML文档.偶尔,我得到格式错误的XML文档,因为在最终>导致a 后会有额外的垃圾SAXException: Content is not allowed in trailing section.(在我看过的情况下,垃圾只是一个或多个空字节.)
我不在乎决赛之后是什么>.有一种简单的方法可以用Java解析整个XML文档并让它忽略任何尾随垃圾吗?
请注意,通过"忽略"我不仅仅意味着捕获并忽略异常:我的意思是忽略尾随垃圾,不抛出任何异常,并返回Document对象,因为XML到包含final >的有效.
由于您的发件人向您提供了无效的XML,因此如果您想要避免此异常,则需要在它到达解析器之前进行更正.如果您无法更正发件人,则需要进行某种预处理步骤.
如果情况只是你在结束标记之后有一个额外的空字节,因为你对另一个答案的一个回复所定义,这可能是你可以通过将输入流包装在FilterInputStream你实现的跳过空字节的过程中轻松实现的.
如果问题比空字符更复杂,那么你当然需要一个更复杂的过滤器,这可能很难.
如果您正在使用a ContentHandler,则可以向其添加回调,以便在处理完结束根标记时它可以通知调用代码,并且基于该知识,调用代码可以在其处理程序中具有用于异常的逻辑如果结束已发出信号,则忽略它.那时,解析器必须完成的任何事情都可能已经完成了!但是这个解决方案似乎并不适用于您的情况.