Erstellen von XML-Dokumenten mit Hilfe des DOM in VB6

Das CatalogDoc ist nun mit einem root-Element versehen, so dass der Anwender ein neues Buch durch Klicken auf den ‚New Book‘-Button hinzufügen kann. Werfen Sie einen Blick auf die Subroutinen cmdNew_Click und BuildNewBookNodes in Listing B, um zu sehen, wie dies funktioniert.

Ich erzeuge zuerst ein neues book-Element mithilfe von CatalogDoc.createElement und hänge es an das root-Element catalog an (auf das ich mit der Eigenschaft documentElement zugreife). Als nächstes erzeuge ich einen neuen IXMLDOMAttribute-Knoten für das ID-Attribut des Buches, das der Benutzer gerade hinzufügt. In diesem Fall zähle ich einfach die vorhandenen Bücher im Dokument (einschließlich des neuen Buch-Elements, das gerade hinzugefügt wurde) und hänge diese Nummer an den Text „bk“ an. Ein Aufruf von BuildNewBookNodes fügt leere Elemente für Titel (title), Autor (author), Preis (price), Erscheinungsdatum (publish_date), Genre (genre) und Inhaltsangabe (description) hinzu, so dass das XML-Dokument nun wie folgt aussieht:


<?xml version="1.0"?>
<catalog>
<book id="bk1">
<author></author>
<title></title>
<genre></genre>
<price></price>
<publish_date></publish_date>
<description></description>
</book>
</catalog>

Das neu erstellte book-Element wird mithilfe einer öffentlichen Variablen an Formular Form2 übergeben, und das Formular zur Bearbeitung des Eintrags wird angezeigt (Abbildung B). Wenn der Benutzer mit dem Eingeben von Informationen zu dem neuen Buch fertig ist und auf OK klickt, füge ich die Daten aus dem Formular in die entsprechenden Unterelemente von book ein, indem ich dessen Kind-Knoten der Reihe nach durchgehe. Sehen Sie sich in Listing C den Event-Handler cmdOK_Click an, der dafür zuständig ist.

Abbildung B
Abbildung B: Dem Katalog ein neues Buch hinzufügen

Schließlich erhalten wir ein XML-Dokument, das wie folgt aussieht (auch hier gilt: überprüfen Sie das anhand von CatalogDoc.xml):


<?xml version="1.0"?>
<catalog>
<book id="bk1">
<author>Lamont Adams</author>
<title>Lamont's First Book</title>
<genre>Fantasy</genre>
<price>10.00</price>
<publish_date>2005-11-05</publish_date>
<description>It's fantasy until I actually write it</description>
</book>
</catalog>

Wir haben erfolgreich ein neues DOM-Dokument erstellt und ein paar Daten mithilfe des BookEditor-Programms hinzugefügt. Dabei sind wir natürlich immer noch an der Oberfläche geblieben, denn es gibt noch viel zu tun: Der BookEditor sollte den Benutzern erlauben, XML-Dateien zu öffnen und zu speichern sowie ein Dokument im Speicher gegen ein Schema zu validieren. Dies alles – und noch ein bisschen mehr – wird in einem folgenden Artikel behandelt.

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 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.

  • 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 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) :-)

Schreibe einen Kommentar

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