XML-Dokumente erstellen mit XmlWriter

Im Artikel “XML-Dokumente schnell lesen mit XmlReader” haben Sie die Klasse XmlReader kennengelernt, mit der Sie schnell durch XML-Dokumente navigieren können. Damit können Sie zum Beispiel Exporte aus anderen Anwendungen in Ihre .NET-Anwendung importieren. Aber was, wenn Sie selbst einmal einen Export mit Ihren Daten im XML-Format bereitstellen wollen Dazu gibt es eine passende Klasse namens XmlWriter. Wie Sie damit XML-Dokumente erstellen und mit den gewünschten Daten füllen, erfahren Sie im vorliegenden Artikel.

Namespace System.Xml referenzieren

Genau wie die Klasse XmlReader ist auch XmlWriter Bestandteil des Namespaces System.Xml. Diesen referenzieren wir deshalb wie folgt im Kopf der Code behind-Klasse unseres Beispielfensters MainWindow.xaml:

Imports System.Xml

Leeres XML-Dokument erstellen mit Create

Um ein XML-Dokument als Datei zu erstellen, rufen Sie die Methode Create des XmlWriter-Objekts auf und übergeben dieser den Pfad der zu erstellenden XML-Datei. Wenn Sie einfach nur den Dateinamen angeben, wird die Datei im gleichen Verzeichnis erstellt wie die .exe-Datei des Projekts:

Dim objWriter As XmlWriter
objWriter = XmlWriter.Create("XmlWriter.xml")
objWriter.Close()

Dies legt allerdings nur ein leeres Dokument an.

XML-Dokument mit Element erstellen

Um ein Dokument mit dem Prolog und einem ersten Element zu erstellen, bedarf es einiger weiterer Zeilen. Die Methoden Write-StartDocument und WriteEndDokument starten den Schreibprozess und beenden diesen wieder. Die Methode WriteStart-Element fügt ein Starttag namens Bestellverwaltung hinzu und WriteEndElement schließt das Element mit dem Endtag ab. Dabei müssen Sie WriteEndElement keinen Parameter mehr übergeben – die Methode bezieht sich immer auf das zuletzt geöffnete Starttag:

Private Sub btnDokumentMitElementErstellen_Click(sender As Object, e As RoutedEventArgs)
     Dim objWriter As XmlWriter
     objWriter = XmlWriter.Create("XmlWriter.xml", objSettings)
     objWriter.WriteStartDocument()
     objWriter.WriteStartElement("Bestellverwaltung")
     objWriter.WriteEndElement()
     objWriter.WriteEndDocument()
     objWriter.Close()
End Sub

Das Ergebnis ist das folgende XML-Dokument:

<xml version="1.0" encoding="utf-8"><Bestellverwaltung />

Hier finden wir keinen Zeilenumbruch, was wir als Erstes ändern möchten

Access, SQL und Cloud Automation

Unser exklusives Angebot für Dich!

VB-Entwickler
12,50 € im Monat*

(Gilt für den Abschluss eines Jahres-Abonnements.)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →