# SAX Parser Character Puffer zu klein



## Kiamur (30. Sep 2005)

Hallo!

Ich benutze den SAX Parser, um ein XML Dokument auszuwerten. Es funktioniert auch alles perfekt, bis auf die Kleinigkeit, dass der Character Puffer der Methode 
	
	
	
	





```
public void characters(char buf[], int offset, int len)
```
 nur 2048 Bytes groß ist. 
Der Puffer wird irgendwie nie geleert, und wenn der offset kurz vor 2048 steht und offset+len größer als 2048 ist, dann wird der String einfach an der 2048 abgeschnitten. Wenn die Methode das nächste mal aufgerufen wird, dann wird der Puffer wieder von 0 an gefüllt, und dann steht da auch tatsächlich der Rest des Strings drin, aber leider erst beim nächsten Aufruf.

Kennt jemand von euch das Problem, und hat eine Lösung dafür?

Gruß
Maik


----------



## Bleiglanz (30. Sep 2005)

das ist ein Problem, es ist jedem SAXParser erlaubt das so zu machen!

Lösung: in seiner "Zustandsmaschine" alle nacheinanderkommenden characters Events in einem StringBuffer sammeln - und dann bei einem NICHT-characters das ganze abspeichern, das geht nicht anders

```
if(lastEventWasCharacters){
   // zum vorhandenen StringBuffer dazu
}else{
   // neuen StringBuffer erzeugen und gleich dazu
}
```


----------



## Kiamur (30. Sep 2005)

Danke für die Antwort. Ich werde mal versuchen so etwas hinzubekommen .

Gruß
Maik


----------

