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

tlr*_*son 8 java xml xerces

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

[Fatal Error] :1:1: Content is not allowed in prolog.
Run Code Online (Sandbox Code Playgroud)

有没有办法禁用它?

Dav*_*ave 10

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

parser.setErrorHandler(null);
Run Code Online (Sandbox Code Playgroud)


Kev*_*vin 5

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

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