2009-10-16 9 views
7

La mia applicazione si aspetta che a volte proverà ad analizzare documenti XML non validi. Attualmente noto "SAXParseException: il contenuto non è consentito in prolog". eccezione, che funziona bene. Tuttavia, Xerces sente ancora la necessità di stampare il proprio messaggio alla console:Disabilita la registrazione in Java Xerces ("[Errore irreversibile]: 1: 1: contenuto non consentito in prolog.")

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

C'è un modo per disabilitare questo?

risposta

3

Credo che stia stampando su System.out o System.err per impostazione predefinita. C'è un'interfaccia ErrorHandler che puoi impostare sul parser se stai interagendo direttamente con le classi di Xerces.

In caso contrario, si può provare a impostare l'org.apache.xerces.impl.Constants.ERROR_REPORTER_PROPERTY proprietà sul SAXParser con un'istanza di XMLErrorReporter

8

proprio di recente mi sono imbattuto lo stesso bisogno. L'impostazione di ErrorHandler su null sopprime la riga di errore Errore irreversibile.

parser.setErrorHandler(null); 
2

L'equivalente quando si utilizza org.w3c.dom.ls.LSParser è

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

Ho avuto questo problema oggi e si è rivelato essere un standard configuration parameter che ho scoperto solo dopo aver letto le tue risposte qui. Grazie.

Problemi correlati