我的应用程序希望它有时会尝试解析无效的XML文档。我目前抓住了“SAXParseException:prolog中不允许内容。”例外,工作正常。但是,Xerces仍然觉得需要将自己的消息打印到控制台:
[Fatal Error] :1:1: Content is not allowed in prolog.
有没有办法禁用它?
答案 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,我在这里找到你的答案后才发现。感谢。