禁用 Java Xerces 中的日志记录(“[致命错误]:1:1:序言中不能有内容。”)

StackOverflow https://stackoverflow.com/questions/1575925

  •  21-09-2019
  •  | 
  •  

我的应用程序期望它有时会尝试解析无效的 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);

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top