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: 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.
Neueste Kommentare
4 Kommentare zu Erstellen von XML-Dokumenten mit Hilfe des DOM in VB6
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.
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) :-)
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
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
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.