prev up next

Vergleich: DOM vs. SAX

SAX ist sehr schnell und auch recht einfach, allerdings kann nach dem Parsen eines Ereignisses nicht mehr darauf zurückgegriffen werden, was bei einigen Anwendungen notwendig ist. Dies ist natürlich bei einem DOM möglich. Da der DOM-Tree im Arbeitsspeicher vorliegt, kann jederzeit auf beliebige Knoten zugegriffen werden. Der DOM-Parser ist somit ideal für Anwendungen, die es erforderlich machen, auf das XML Dokument interaktiv zuzugreifen. Allerdings ist das DOM auch wesentlich langsamer und speicherintensiver [Har2001].
Ein weiterer Unterschied liegt in der Validierung eines XML-Dokumentes. Sollten bei der Validierung mit SAX Fehler im Dokument auffallen, kann es im schlimmsten Falle sein, daß fast das gesamte Dokument verarbeitet wurde. Eventuell durchgeführte Aktionen müssen dann wieder rückgängig gemacht werden. Des weiteren kann bereits unnötig viel Rechenzeit vergangen sein, da die einzelnen Ereignisse eine komplexe Verarbeitung nach sich ziehen können. Beim DOM wird im Falle einer Validierung erst das gesamte Dokument geprüft und es ist daher zu Beginn der eigentlichen Verarbeitung sicher fehlerfrei.
Bei der Wahl der Schnittstelle ist also zu prüfen, welche Anforderungen gestellt werden. Wenn sehr komplexe Dokumente schnell geparst werden und diese Dokumente maschinell erstellt wurden, so daß sie wahrscheinlich fehlerfrei sind, ist ein SAX Parser auf jeden Fall angebracht, bei umfangreichen Manipulationen am Dokument eher ein DOM Parser.
prev up next