Frank (no reg): XML parsen

Beitrag lesen

Hallo,

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.

Wenn ich dich richtig verstehe, dann solltest du vor dem NEXT einfach noch ein Response.Write "Trennstrich" & "<br/> platzieren.

Du hast aber anscheinend generell ein Verständnisproblem mit der Benutzung des DOM Modells vom XMLDomDocument.

Die Funktion XMLDoc.GetElementsByTagName("buch") wird evt. nicht nur ein Argument benötigen? Vielleicht gibt es sie auch gar nicht. Schau dir in deinem Entwicklungsstudio bzw. im MSDN die Objektreferenz vom MSXML Parser an.

Eine imho recht effektive Sache zur Ermittlung aller <buch> elemente ist:

XMLDoc.DocumentElement.SelectNodes("//buch")    das gibt dir eine XmlNodeList (iirc) zurück, die du mit einer "for each" schleife iterieren kannst. XmlNodeList beinhaltet dann XmlNodes mit dem NodeName "buch" und (wahrscheinlich) den Childnodes <autor> und <titel>. "//buch" ist dabei ein XPATH Query

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

Cheers, so long,
Frank