BEISPIEL
Kapitel 12: XML in Theorie und Praxis
Set node = root.selectSingleNode("EUROPA")
MsgBox node.nodeName
End Sub
Erwartungsgemäß wird Ihnen der zugehörigen Knotenname angezeigt.
Über das zurückgegebene Objekt vom Typ IXMLDOMNode können Sie aber wiederum auf die jeweiligen
Untereinträge des Knotens zugreifen usw. Doch bevor wir dies demonstrieren, möchten wir unsere Daten-
basis etwas vergrößern und zusätzliche Informationen im XML-Baum abspeichern.
Einfügen von Informationen
Nachdem Sie die XML-Daten geladen und einen bestimmten Knoten ausgewählt haben, können Sie diesem
zusätzliche Informationen in Form von Attributen oder Elementen hinzufügen.
Den einzelnen Kontinenten, die bereits in der Datei enthalten sind, ordnen wir noch die Fläche, die Anzahl
der Einwohner und einige Länder zu. Dabei werden wir uns jedoch auf einige Auszüge beschränken, für eine
komplette Auflistung dürfte an dieser Stelle weder der Platz noch der Bedarf vorhanden sein:
Sub XML_Versuch_6()
Dim xmlDoc As DOMDocument30
Dim root As IXMLDOMNode
Dim node As IXMLDOMNode
Set xmlDoc = New DOMDocument30
xmlDoc.Load ("c:\Test2.xml")
Auswahl eines bestimmten Knotens:
Set root = xmlDoc.documentElement
Set node = root.selectSingleNode("EUROPA")
Einfügen von Zusatzinformationen:
With node.appendChild(xmlDoc.createElement("Fläche"))
.Text = "10500000"
End With
With node.appendChild(xmlDoc.createElement("Einwohner"))
.Text = "718500000"
End With
Wie Sie sehen, verwenden wir eine recht kurze Schreibweise für den Zugriff auf den zurückgegebenen Child-
Node. Sie könnten auch umständlich den Rückgabewert einer Variablen von Typ
IXMLDOMNode
zuweisen
und nachfolgend auf die Eigenschaften zugreifen.
Einfügen weiterer Elemente:
node.appendChild xmlDoc.createElement("Frankreich")
node.appendChild xmlDoc.createElement("Deutschland")
780
BEISPIEL
node.appendChild xmlDoc.createElement("Italien")
node.appendChild xmlDoc.createElement("Österreich")
node.appendChild xmlDoc.createElement("Schweden")
node.appendChild xmlDoc.createElement("Norwegen")
node.appendChild xmlDoc.createElement("Polen")
Auch hier nutzen wir die Möglichkeit, den zurückgegebenen Wert (es handelt sich um ein Objekt vom Typ
IXMLDOMNode
) gleich an die nächste Methode weiterzugeben. So ersparen wir uns unnötige Variablen und
natürlich auch einige Zeilen Quellcode.
xmlDoc.Save ("c:\Test6.xml")
End Sub
Das Aussehen der Datei nach diesen Erweiterungen zeigt die folgende Abbildung:
Abbildung 12.30 Ansicht im Internet Explorer
Möchten Sie sich nicht umständlich durch die Objekt-Struktur hangeln, können Sie auch direkt den »Pfad«
zum gesuchten Element angeben.
Erweitern der Einträge von
Deutschland
und
Frankreich
um die Einträge
Fläche
und
Einwohner
.
Sub XML_Versuch_7()
Dim xmlDoc As DOMDocument30
Dim root As IXMLDOMElement
Dim node As IXMLDOMNode
Set xmlDoc = New DOMDocument30
xmlDoc.Load ("c:\Test6.xml")
Set root = xmlDoc.documentElement
781
XML-Verarbeitung mit dem DOM
Kapitel 12: XML in Theorie und Praxis
Wir bestimmen direkt aus der Root heraus den gesuchten Knoten ...
Set node = root.selectSingleNode("EUROPA/Deutschland")
... und fügen auf bewährte Weise zwei neue Einträge hinzu:
With node.appendChild(xmlDoc.createElement("Fläche"))
.Text = "356854"
End With
With node.appendChild(xmlDoc.createElement("Einwohner"))
.Text = "80767600"
End With
Das Gleiche für
Frankreich
:
Set node = root.selectSingleNode("EUROPA/Frankreich")
...
xmlDoc.Save ("c:\Test7.xml")
End Sub
Das resultierende Dokument können Sie sich im Internet Explorer ansehen:
Abbildung 12.31 Ansicht im Internet Explorer
Mit dem nun etwas umfangreicheren XML-Dokument können wir uns noch einmal dem Navigieren zwi-
schen den einzelnen Baumknoten zuwenden. Ein Praxisbeispiel ab Seite 816 (»Navigieren zwischen einzel-
nen XML-Baumknoten«) demonstriert Ihnen recht anschaulich die Vorgehensweise.
782

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.