# OutOfMemory mit JDOM



## spike78 (30. Aug 2006)

Hallo zusammen,

ich habe ein kleines Problem mit JDOM. Und zwar bekomme ich hier:

 Document docout = builder.build( m_out );


immer einen OutOfMemoryError. Meine XML Dateien sind ca. 70 MB groß. Scheinbar kann JDOM mit so großen Dateien nicht umgehen. Wie kann ich das lösen ?

Danke und Gruß

Michael


----------



## hupfdule (30. Aug 2006)

Entweder den Speicher der VM vergrößern oder (meine Empfehlung) SAX benutzen.


----------



## spike78 (30. Aug 2006)

wie sieht das in SAX aus (Syntax) und wo bekomme ich es her ?

Gruß


----------



## hupfdule (30. Aug 2006)

Zum Beispiel http://xerces.apache.org/xerces-j. SAX baut nicht wie DOM einen eigenen Baum auf, sondern arbeitet das XML-Dokument sequentiell durch. Beim Auftreten bestimmter Elemente (öffnende Tags, schließende Tags, etc.) werden dann Handler aufgerufen, die die eigentliche Arbeit machen. Diese Handler implementierst du. Ist recht einfach und meines Erachtens praktischer als DOM. Insbesondere bekommst du dabei nicht diese Speicherprobleme, es sei denn die Objektstruktur, die du dir aufbaust überschreitet die Speichergrenze der VM.


----------



## spike78 (30. Aug 2006)

Ok danke soweit. Wie würde dies mit SAX aussehen:

      Document docout = builder.build( m_out );
            Element rootout = docout.getRootElement();
            List childlistout = rootout.getChildren();

Gruß


----------



## hupfdule (30. Aug 2006)

Hab grad kein Beispiel parat. Such nach SAX Tutorials. Wichtig für dich ist der ContentHandler. Das ist der, den du implementieren musst. Du bekommst keine _Element_ oder _Node_ zurück. Du baust dir deine eigene Struktur auf, was in der Regel auch praktischer ist. (Wobei ich hier SAX mit DOM vergleiche. Mit JDOM hab ich keine Erfahrung)


----------



## DP (30. Aug 2006)

jdom fliegt bei files >1.8mb auf die fresse.


----------

