2016-05-11 13 views
-3

Bitte helfen Sie mir dabei: Ich Parsing einige XML-Dateien mit Sax Parser in Java. Wenn der Parser jedoch & erkennt, parst er die aktuelle Zeile nicht weiter und wechselt zum nächsten Element.Wie man vollständige Daten zu analysieren & in Java-Sax Parser

Ich habe StringEscapeUtils.escapeHtml (String) versucht, aber es hat nicht funktioniert.

Vielen Dank im Voraus.

+1

Was bedeutet "erkennt &" bedeuten? – immibis

+0

Bitte zeigen Sie eine [mcve] - die Frage ist im Moment zu unklar, um sie zu beantworten. –

Antwort

0

SAXParser teilt ein Textelement in einen oder mehrere separate Chunks auf, wenn & oder vielleicht auch einige andere Delimiter gefunden werden.

Dies ist, wie ich es tue, den aktuellen Elementnamen in einem startElement-Callback lesen, irgendwo speichern, Chunks verketten.

@Override public void characters(char[] ch, int start, int length) throws SAXException { 
    super.characters(ch, start, length); 
    String value = new String(ch, start, length); 
    String oldval = cachedProps.get(elemName); 
    if (oldval!=null) value = oldval+value; 
    cachedProps.put(elemName, value); 
} 

Möglicherweise möchten Sie StAXParser studieren XML-Dateien als Stream zu lesen. Es ist normalerweise besser geeignet und steuerbar durch eigene Anwendungen. SAX Callback-Schnittstelle ist manchmal ein schwieriger Fall.

  • DOM = alles eine Datei in den Arbeitsspeicher gelesen
  • SAX = Streaming auf Öffnen, "Push" Callback-Modus
  • StAX = Streaming, "Pull" -Modus