私のアプリケーションは、時々無効な XML ドキュメントを解析しようとすることを想定しています。現在、「SAXParseException: Content is not allowed in prolog.」をキャッチしています。正常に動作する例外。ただし、Xerces は、独自のメッセージをコンソールに出力する必要があると感じています。
[Fatal Error] :1:1: Content is not allowed in prolog.
これを無効にする方法はありますか?
私は最近、同じニーズに出くわしました。ErrorHandlerをnullに設定すると、致命的なエラーの印刷行が抑制されます。
parser.setErrorHandler(null);
デフォルトで System.out または System.err に出力されていると思います。Xerces クラスと直接対話している場合は、パーサーに設定できる ErrorHandler インターフェースがあります。
それ以外の場合は、XMLErrorReporter のインスタンスを使用して SAXParser のプロパティ org.apache.xerces.impl.Constants.ERROR_REPORTER_PROPERTY を設定してみてください。
org.w3c.dom.ls.LSParserを使用する場合の等価物は次のとおりです。
parser.getDomConfig().setParameter("error-handler", null);
今日この問題が発生しましたが、ここであなたの回答を読んだ後に初めて見つけた標準の構成パラメーターであることが判明しました。ありがとう。