2017-03-06 1 views
1

Ich habe eine XML-Datei, die einige ungültige Zeichen enthält (Zeichen nicht in XML 1.0 unterstützt). Ich möchte die Datei analysieren, aber ich bekomme eine Ausnahme, dass XML ungültige Zeichen enthält. Gibt es eine Möglichkeit, das XML mit ungültigen Zeichen zu analysieren. Oder überspringen Sie das Knotenattribut, das ein ungültiges Zeichen enthält.analysieren XML mit ungültigen Zeichen

+0

Würde es funktionieren, wenn Sie den Parser in XML 1.1-Modus gezwungen oder geändert, um den XML-Prolog Ihre Datei als 1.1 XML zu erklären (die Art von Hack ist, aber einer von am einfachsten zu testen)? – GPI

Antwort

0

Eine mögliche Problemumgehung wäre das Laden in eine Zeichenfolge und das Ersetzen des ungültigen Zeichens durch ein gültiges Zeichen oder Tag, so dass Sie wissen, dass es dort war. Dann normal analysieren.

+0

Danke für die Antwort..Die Größe von XML ist zu groß, so dass es eine komplexe Prozedur für mich ist.Ich habe eine Zeilennummer, wo ich die ungültigen Zeichen bekomme, so gibt es irgendwelche w um den Inhalt einer bestimmten Zeile zu ändern. – Shrikant

0

Sie meinen also, es gibt Zeichen &, <,> (“oder" in Attribute) um? Sie können Ihre eigenen Input Dekorateur schreiben und diese konvertieren ‚schlechte‘ Zeichen in entkommen diejenigen. Ihre Input nimmt diese ungültige Daten und kehrt gültige Daten für die nächste Verarbeitungsstufe:

InputStream yourFancyIllegalCharConverter = new YourFancyIllegalCharConverter(realInputStream); 
XMLInputFactory factory = XMLInputFactory.newInstance(); 
XMLStreamReader parser = factory.createXMLStreamReader(yourFancyIllegalCharConverter); 
Verwandte Themen