Der Scanner von Destruktor.de zerlegt die
XML-Datei in ihre syntaktischen Bestandteile. "Öffnendes Tag", "Das Zeuch im Tag", "Schließendes Tag" usw. Er betrachtet die
XML-Datei als einen kontinuierlichen Datenstrom und kann während der Verarbeitung zwar sagen, wo er gerade lokal steht, aber die Baumstruktur als Ganzes ist ihm unbekannt. dafür musst Du dann sorgen.
Ich habe damit mal alle Beiträge der
DP geparst und kam damit auf richtig hohe Geschwindigkeiten. Als Einstieg empfiehlt sich das Demo-Projekt, ich meine, das ist sogar der Scanner. Dort gibt's - das siehst Du dann im Code - ein zentrales Ereignis für "Irgendwas (Token) gefunden". Und dann kannst Du anhand der Parameter herausfinden, was das eigentlich ist, das der Scanner da gerade am Wickel hat und in den Ebenen Deines Arrays oder Baumes nach oben oder unten gehen.
Andere Parser gehen anders vor. Die schnappen sich zuerst die gesamte
XML-Datei und bauen den Baum im Speicher auf. Danach siehst Du dann nett die einzelnen Ebenen und kannst sie in der Regel auf und zu klappen.
Daniel R. Wolf
mit Grüßen aus Hamburg