XML Beispiel

Sprache:
XML, DOM, VB6

Typ:
Beispiel

Stand:
2001, abgeschlossen

Stichworte:
XML, DOM, VB
 
 
 
Beschreibung

Es gibt im Internet eine unzahl von Beispielen zu XML und VB. Leider ist es aber für Anfänger oft nicht möglich ein einfaches Beispiel ohne viel Schnickschnack zu finden. Das folgende Mini Programm soll dieses nachholen:


1. XML Datei anlegen

Legen Sie sich eine lerre Textdatei an und öffnen Sie diese in einem Plaintext Editor (z.B. Notepad). Kopieren Sie die folgenden XML Inhalte in die Datei und speichern Sie diese als 'Links.xml' ab... <?xml version="1.0" encoding="ISO-8859-1"?> <LINKS> <DATENSATZ> <ID>5</ID> <Name>PHP Manual Quick Reference</Name> <Adresse>http://www.php.net/</Adresse> <Beschreibung>PHP Manual Quick Reference</Beschreibung> <Format>HTML</Format> </DATENSATZ> <DATENSATZ> <ID>6</ID> <Name>PHP/MySQL Tutorial</Name> <Adresse></Adresse> <Beschreibung>PHP/MySQL Tutorial</Beschreibung> <Format>HTML</Format> </DATENSATZ> <DATENSATZ> <ID>7</ID> <Name>Server Status-Codes</Name> <Adresse>http://www.xwolf.com/faq/servercodes.html</Adresse> <Beschreibung>Server Status-Codes</Beschreibung> <Format>HTML</Format> </DATENSATZ> <DATENSATZ> <ID>10</ID> <Name>XML Dokumentation</Name> <Adresse>http://members.aol.com/xmldoku</Adresse> <Beschreibung>XML, FAQ, Syntax</Beschreibung> <Format>HTML</Format> </DATENSATZ> </LINKS>
2. VB Projekt anlegen

Öffnen Sie nun ein leeres VB Projekt und legen Sie auf der Form ein Treeview (tvXML) und einen Button(cmdStart) an. Beim Klick Ereignis des Buttons geben Sie nun folgenden Quelltext an: Dim XMLDoc As Object, XMLRoot As Object Dim XMLChildNodes As Object, XMLCurrentNode As Object Dim XMLChildNodesCount As Integer, XMLCurrentNodeTagsCount As Integer Dim i As Integer, ii As Integer Const XMLFileName = "links.xml" Set XMLDoc = CreateObject("microsoft.xmldom") ' Parser laden XMLDoc.async = False XMLDoc.Load App.Path & "\" & XMLFileName Set XMLRoot = XMLDoc.documentElement Set XMLChildNodes = XMLRoot.childNodes XMLChildNodesCount = XMLRoot.childNodes.length tvXML.Nodes.Clear tvXML.Nodes.Add , tvwChild, "Root", "XMLDokument (" & XMLFileName & ")" For i = 1 To XMLChildNodesCount - 1 tvXML.Nodes.Add "Root", tvwChild, "Node" & i, "NODE " & i Set XMLCurrentNode = XMLRoot.childNodes.Item(i) XMLCurrentNodeTagsCount = XMLCurrentNode.childNodes.length For ii = 1 To XMLCurrentNodeTagsCount - 1 tvXML.Nodes.Add "Node" & i, tvwChild, "Tag" & i & "-" & ii, _ XMLCurrentNode.childNodes.Item(ii).Text Next ii Next i
3. Starten

Nachdem Sie die XML Datei aus 1. in das Anwendungsverzeichnis kopiert haben, können Sie das Projekt starten und der Inhalt wird im Treeview angezeigt. Das Programm erzeugt eine Instanz des Microsoft XML Parser mit CreateObject, lädt die XML Datei und beginnt alle dem Root Eintrag (</LINKS>) untergeodneten Einträge (<DATENSATZ>) mit einer Schleife zu durchlaufen und anzuzeigen. Dabei werden mit einer zweiten Schleife alle Attribute des Objektes durchlaufen und als dem Objekt untergeordnete Einträge in das Treeview gesetzt.

Anmerkung:
Das Arbeiten mit CreateObject ist sehr mühevoll, weil die Objekte des Parsers der VB Entwicklungsumgebung nicht bekannt sind. Einfacher ist es einen Verweis (Projekt/Verweise/...) auf den 'Microsoft XML Parser' hinzuzufügen. Dabei gibt es jedoch, je nach installiertem Internet Explorer, verschiedene Versionen.

Mögliche Erweiterungen zur Übung:
  • Rekursives laden von verschachtelten XML Bäumen
  • Ändern und speichern von Daten
  • Eine Klasse zum de/serialisieren von Objekten


Weitere Informationen zu XML finden Sie unter diesem Link.



Impressum
 


Copyright 2002,2003 M. Schmitz