06 Apr 2007, 10:25

XML - SAX vs. DOM

Share

Mir war lange Zeit unklar was der Unterschied zwischen SAX (Simple-API-for-XML) und DOM (Document Object Model) ist.

Ich möchte das hier nochmal kurz zusammenfassen:

Ein DOM-Abbild einer XML-Struktur liegt i.d.R. komplett im Speicher und lässt sich so sehr bequem manipulieren und auslesen, benötigt aber unter Umständen sehr viel Speicherplatz.

Bei SAX definiert der Entwickler sog. Callback-Handler die bei bestimmten Ereignissen, d.h. XML-Tags (z.b. <html>) aufgerufen werden. So wird nur ein Bruchteil der XML-Datei im Speicher vorgehalten und es wird damit möglich auch sehr große XML-Datein zu parsen.

Man stelle sich vor man bekommen eine 1,2 GB große Datei mit allen Zugverbindungen in Deutschland und will die komplett in den Speicher laden … (Alles schon vorgekommen).