禁用 Java Xerces 中的日志记录(“[致命错误]:1:1:序言中不能有内容。”)
题
我的应用程序期望它有时会尝试解析无效的 XML 文档。我目前捕获了“SAXParseException:序言中不允许出现内容。”异常,效果很好。然而,Xerces 仍然觉得需要将它自己的消息打印到控制台:
[Fatal Error] :1:1: Content is not allowed in prolog.
有什么办法可以禁用这个吗?
解决方案
相信它默认打印到System.out或System.err的。有一个的ErrorHandler接口,你可以在分析器设置,如果你使用Xerces类直接交互。
否则,你可以尝试设置在SAXParser的财产org.apache.xerces.impl.Constants.ERROR_REPORTER_PROPERTY与XMLErrorReporter的实例
其他提示
我遇到同样需要刚刚来到。所述的ErrorHandler设置为null抑制致命错误打印线。
parser.setErrorHandler(null);
使用时等效 org.w3c.dom.ls.LSParser 是
parser.getDomConfig().setParameter("error-handler", null);
我今天遇到了这个问题,结果是 标准配置参数 我是在阅读您的答案后才发现的。谢谢。
不隶属于 StackOverflow