Erstellen von XML-Dokumenten mit Hilfe des DOM in VB6

Die Beispielanwendung BookEditor erlaubt dem Benutzer die Erstellung eines neuen XML-Dokuments, basierend auf den Werten, die er für ein hypothetisches Buch eingibt. Das Steuerelement TreeView in Formular Form1 zeigt den Inhalt des aktuell geladenden Buch-Katalogs an (Abbildung A).

Abbildung A
Abbildung A: Drei Bücher im BookEditor angezeigt

Als erstes erstellt der BookEditor nach dem Start ein neues leeres XML-Dokument, das als root-Element für neue book-Elemente im Dokumenten-Baum dient. Dies geschieht in der Subroutine SetupCatalogDoc (Listing A).

Bevor irgendwelche Knoten erstellt werden, konfiguriere ich den DOM-Parser durch Angabe einiger Parameter der Modul-Variablen CatalogDocDOMDocument40-Objekt:

  • Der Parameter async legt fest, ob der Parser im Synchron-Modus läuft. Der Asynchron-Modus (die Default-Einstellung) erlaubt Ihrer Anwendung die Ausführung weiterer Tasks, während der DOM-Parser den Baum eines umfangreichen Dokuments erstellt. Da meine Beispielanwendung mit relativ kleinen Dokumenten arbeitet, habe ich den Synchron-Modus für den Parser eingestellt (async = False) Damit umgehe ich die Schwierigkeiten, die mit der Beobachtung des Fortschritts eines asynchronen Parsers verbunden sind.
  • Die Eigenschaft preserveWhiteSpace kontrolliert, ob der Parser zur Repräsentation von Whitespace in einem XML-Dokument Extra-Elemente in den DOM-Baum einfügt. Diese Extra-Elemente können die Navigation komplizieren, also habe ich diese Funktion abgeschaltet, indem ich die Eigenschaft auf false gesetzt habe.
  • Die Eigenschaft resolveExternals kontrolliert, ob der Parser versuchen soll, Verweise auf externe Dokumente oder Namespaces aufzulösen, auf die er in einem XML-Dokument stößt. Dies ist eine nützliche Funktion, wenn man es mit einem Dokument zu tun hat, das über ein zugehöriges XML-Schema oder eine DTD verfügt. Setzt man resolveExternals auf true, lädt der Parser automatisch ein Schema oder eine DTD, um das Dokument später dagegen zu validieren.

Nachdem der Parser wie gewünscht eingerichtet ist, kann ich damit beginnen, die benötigten Knoten für das root-Element des neuen Dokuments zu erstellen. Zuerst erzeuge ich einen neuen IXMLProcessingInstruction-Knoten, der die Angabe der XML-Version enthält, die zu Beginn jedes XML-Dokuments erscheinen sollte.

Dann erstelle ich einen IXMLElementNode, der das root-Element catalog des Dokuments repräsentiert. Nachdem diese beiden Knoten CatalogDoc hinzugefügt wurden, habe ich das folgende einfache XML-Dokument (überprüfen Sie dies anhand von CatalogDoc.xml):


<?xml version="1.0"?>
<catalog/>

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

4 Kommentare zu Erstellen von XML-Dokumenten mit Hilfe des DOM in VB6

Kommentar hinzufügen
  • Am 15. Januar 2010 um 13:22 von rocker

    Guter Einstieg für DOM-Anfänger, die sich mit VB etwas auskennen
    Ich fand den Artikel für meine Zwecke ausgezeichnet, da er mir genau den gewünschten Einstieg in das Thema ermöglich hat.

    Ich finde, daß die einzelnen Schritte hinreichend ausführlich und „Codesynchron“ (was oftmals leider nicht der Fall ist) erläutert wurden.

    Allerdings hat der Autor den QuellCode wohl nicht mehr abschließend getestet – die Fehlerrate ist einfach zu hoch (siehe Antwort zu Kommentar-Gino) :-)

  • Am 10. Dezember 2003 um 20:37 von Gino

    Erstellen von XML-Dokum. mit Hilfe des DOM in VB6
    Schade,

    wollte das Ding testen – aber
    Set Me.CatalogDoc = etc….
    in SetupCatalogDoc()
    verursacht folgenden Fehler:
    "Methode oder Mitgliedsdaten nicht gefunden"

    Verweis auf XML ist vorhanden,
    hm – was kann ´das sein?

    Gruss
    Gino

    • Am 15. Januar 2010 um 13:11 von rocker

      AW: Erstellen von XML-Dokum. mit Hilfe des DOM in VB6
      nach 7 Jahren Test – endlich die Code-Macken gefunden :-)

      a) statt Set Me.CatalogDoc.. –> Set CatalogDoc
      b) in Form2 eine Variabel CatalogDoc als Public deklarieren
      "Public CatalogDoc As MSXML2.DOMDocument40" definieren

      c) in Form2 den Event-Handler "cmdOK_Click()" vor "End Sub" wie folgt ergänzen:
      Form1.EditCancelled = False
      Me.Hide (oder Unload Me)

      –> dann kann auch das Ergebnis in Form1 betrachtet werden

  • Am 1. Oktober 2003 um 12:47 von A.Kurz

    Hilfestellung für Anfänger
    Der Artikel ist nicht schlecht, könnte aber – für Anfänger dieser Materie – mehr Hilfestellung bieten, damit sich Neulinge besser zurecht finden
    so muss ich weiterhin basteln und zaubern um endlich die Ergebnisse zu erzielen , die ich von meinen Programm erwarte.
    Des Weiteren sollte der Artikel ruhig mal wieder Aktualisiert werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *