Problem beim Analysieren von XML-Dokumenten mit SaxParser - 2047 Zeichenbeschränkung?

Ich habe eine Klasse erstellt, die die SaxParser DefaultHandler-Klasse erweitert. Meine Absicht ist es, die XML-Eingabe in einer Reihe von Objekten zu speichern, während die Datenintegrität der ursprünglichen XML-Daten erhalten bleibt. Während des Tests stelle ich fest, dass einige der Knotendaten bei der Eingabe willkürlich abgeschnitten wurden.

Zum Beispiel:

Input: <temperature>-125</temperature>  Output: <sensitivity>5</sensitivity>
Input: <address>101_State</city>             Output: <address>te</address> 

Um die Sache noch weiter zu verkomplizieren, treten die obigen Fehler "zufällig" für 1 von 100 Instanzen der gleichen XML-Tags auf. Das heißt, die XML-Eingabedatei enthält ungefähr 100 Tags<temperature>-125</temperature> aber nur einer von ihnen erzeugt eine Ausgabe von<sensitivity>5</sensitivity>. Die anderen Tags erzeugen genau<sensitivity>-125</sensitivity>.

Ich habe die abstrakte Methode "characters (char [] ch, int start, int length)" überschrieben, um den Zeicheninhalt einfach zwischen XML-Tags zu erfassen:

public void characters(char[] ch, int start, int length)
            throws SAXException {

            value = new String(ch, start, length);

            //debug
            System.out.println("'" + value + "'" + "start: " + start + "length: " + length);
        }

Meine println-Anweisungen erzeugen für das spezifische Temperatur-Tag die folgende Ausgabe, die zu einer fehlerhaften Ausgabe führt:

> '-12'start: 2045length: 3 '5'start:
> 0length: 1

Dies sagt mir, dass die Zeichenmethoden für dieses bestimmte XML-Element zweimal aufgerufen werden. Es wird einmalig für alle anderen XML-Tags aufgerufen. Der "Start" -Wert der zweiten Zeile bedeutet für mich, dass die Zeichen [] in der Mitte dieses XML-Tags zurückgesetzt werden. Und die Zeichenmethode wird mit dem neuen char [] erneut aufgerufen.

Kennt jemand dieses Problem? Ich habe mich gefragt, ob ich die Grenze der Kapazität eines Charakters erreicht habe. Eine schnelle Abfrage macht dies jedoch unwahrscheinlich. Mein Zeichen [] wird anscheinend auf ~ 2047 Zeichen zurückgesetzt

Vielen Dank,

PFUND

Antworten auf die Frage(3)

Ihre Antwort auf die Frage