禁用Java Xerces中的日志记录(“[致命错误]:1:1:prolog中不允许使用内容。”)

时间:2009-10-16 00:51:22

标签: java xml xerces

我的应用程序希望它有时会尝试解析无效的XML文档。我目前抓住了“SAXParseException:prolog中不允许内容。”例外,工作正常。但是,Xerces仍然觉得需要将自己的消息打印到控制台:

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

有没有办法禁用它?

3 个答案:

答案 0 :(得分:10)

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

parser.setErrorHandler(null);

答案 1 :(得分:5)

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

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

答案 2 :(得分:3)

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

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

我今天遇到了这个问题,结果证明这是standard configuration parameter,我在这里找到你的答案后才发现。感谢。