2009-10-16 7 views
7

Mon application s'attend à ce qu'elle essaie parfois d'analyser des documents XML non valides. J'attrape actuellement la "SAXParseException: le contenu n'est pas autorisé dans le prologue". exception, qui fonctionne bien. Cependant, Xerces ressent toujours le besoin d'imprimer son propre message sur la console:Désactiver la journalisation dans Java Xerces ("[Erreur fatale]: 1: 1: le contenu n'est pas autorisé dans le prologue.")

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

Y at-il un moyen de désactiver cela?

Répondre

3

Je crois qu'il imprime à System.out ou System.err par défaut. Il existe une interface ErrorHandler que vous pouvez définir sur l'analyseur si vous interagissez directement avec les classes Xerces.

Sinon, vous pouvez essayer de régler la org.apache.xerces.impl.Constants.ERROR_REPORTER_PROPERTY de propriété sur le SAXParser avec une instance de XMLErrorReporter

8

Je viens suis tombé sur le même besoin. Définir ErrorHandler sur null supprime la ligne d'impression Erreur irrécupérable.

parser.setErrorHandler(null); 
2

L'équivalent lors de l'utilisation org.w3c.dom.ls.LSParser est

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

J'ai eu ce problème aujourd'hui et il est avéré être un standard configuration parameter que j'ai trouvé seulement après avoir lu vos réponses ici. Merci.

Questions connexes