【问题标题】:Disable logging in Java Xerces ("[Fatal Error] :1:1: Content is not allowed in prolog.")在 Java Xerces 中禁用日志记录(“[致命错误]:1:1:prolog 中不允许内容。”)
【发布时间】:2010-12-07 06:00:25
【问题描述】:

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

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

有什么办法可以禁用它?

【问题讨论】:

    标签: java xml xerces


    【解决方案1】:

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

    parser.setErrorHandler(null);
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        我今天遇到了这个问题,结果是standard configuration parameter,我是在阅读您的答案后才发现的。谢谢。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-05-09
          • 2012-07-19
          • 2020-03-26
          • 1970-01-01
          • 1970-01-01
          • 2019-04-04
          • 1970-01-01
          • 2020-10-03
          相关资源
          最近更新 更多