Bernd2k: XML parsen

Beitrag lesen

ein MSXML.XMLNode hat eine Collection von untergeordneten XMLNode Objekten, .ChildNodes genannt. Durch diese kann man mittels einer "for each" Schleife iterieren. Ein Element der Collection ist dann quasi abgearbeitet, wenn die Schleife zum nächsten Durchgang gelangt, also wenn man (der Entwickler) das "Next" Kommando der Schleife ausführt. Bis dahin bleibt man im Kontext des aktuellen Elements aus der Iteration. In deinem Falle Buch.

Hm, das ist klar. Nur durch die 2fache Verschachtelung (<bibliothek> -> <buecher> -> <buch>) erhalte ich immer nur das Ende der ersten Ebene.
Also ich weiss immer wann <buecher> abgearbeitet ist, aber nicht wann <buch> fertig ist. Ich kann mir zwar alles unterhalb von <buch> ausgeben lassen, weiss aber nie, wann ich den Trennstrich ziehen kann.

Wenn du meinst, mit PHP ist das so einfach, wie stellst du denn da fest, wann ein <buch> _abgearbeitet_ ist?

Bei PHP kann ich mir alle Elemente eines bestimmten Nodes in einer Liste geben lassen mit z.B.

$domNode=$rootDomNode->get_elements_by_tagname("buecher");

Dadurch habe ich einen Einsprungpunkt, wo keine weitere Verschachtelung mehr auftritt.

Dann kann ich mit einer Schleife durch die Liste durchgehen und dann jedes Buch EINZELN bearbeiten.

Aber vielen Dank fuer deine Hilfe. Werd mir das auch noch mal anschauen und deine Tipps abarbeiten.
Aber ich denke auch eher, dass es daran liegt, dass mir verstaendnissmaessig das Konzept XML an sich nicht in den Kopf will.
Ich persoenlich finde es schon komisch, mich erst in eine Struktur einarbeiten zu muessen, um dann erst die Daten herausholen zu koennen. Aber das tut hier ja eigentlich nichts zur Sache :-)