8

我的应用程序期望它有时会尝试解析无效的 XML 文档。我目前捕捉到“SAXParseException:prolog 中不允许内容”。异常,效果很好。然而,Xerces 仍然觉得有必要将它自己的消息打印到控制台:

[Fatal Error] :1:1: Content is not allowed in prolog.

有什么办法可以禁用它吗?

4

3 回答 3

12

我最近遇到了同样的需求。将 ErrorHandler 设置为 null 会抑制致命错误打印行。

parser.setErrorHandler(null);
于 2010-03-29T20:56:25.777 回答
5

我相信它默认打印到 System.out 或 System.err。如果您直接与 Xerces 类交互,则可以在 Parser 上设置一个 ErrorHandler 接口。

否则,您可以尝试使用 XMLErrorReporter 实例在 SAXParser 上设置属性 org.apache.xerces.impl.Constants.ERROR_REPORTER_PROPERTY

于 2009-10-16T00:59:33.773 回答
3

使用org.w3c.dom.ls.LSParser时的等价物是

parser.getDomConfig().setParameter("error-handler", null);

我今天遇到了这个问题,结果证明这是一个标准配置参数,我是在阅读了您的答案后才发现的。谢谢。

于 2011-06-23T22:46:22.430 回答