Verwenden von PowerShell zum Erstellen von XML-Dokumenten
In PowerShell gibt es verschiedene Möglichkeiten zum Erstellen XML Unterlagen. Eine der besten Methoden ist die Verwendung der XMLTextWriter-Klasse. Es gibt andere Techniken, um vorhandene Textdateien in XML-Dokumente zu konvertieren, aber diese Textdatei muss zuerst vorhanden sein. Bei Verwendung der XMLTextWriter-Klasse ist dies nicht erforderlich.
In diesem Tipp wird erläutert, wie Sie ein wohlgeformtes XML-Dokument erstellen. Am Ende sollte das XML-Dokument folgendermaßen aussehen:
xml version = "1.0"?>
Car>
Car>
Maschinen>
Zuerst, instanziieren das XmlTextWriter-Objekt mit dem New-Object Cmdlet. Da das XmlTextWriter-Objekt wissen muss, wo die XML-Datei erstellt werden soll, müssen wir den XML-Dateipfad an seinen Konstruktor übergeben:
$ xmlWriter = New-Object System.XMl.XmlTextWriter (‘C: Cars.xml’, $ Null)

Wie in Abbildung 1 zu sehen ist, wird beim Erstellen des Objekts sofort die XML-Datei erstellt. Zu diesem Zeitpunkt handelt es sich um eine leere Textdatei.
Für eine XML-Datei, die einfacher zu lesen ist, sollten wir Formatierungsregeln anwenden. Ohne diese Formatierung werden alle Knoten komprimiert und sind schwer zu lesen. Während PowerShell die Knoten lesen kann, ist es für uns Menschen nicht einfach. Aus diesem Grund möchte ich alle meine Knoten mit Tabulatoren einrücken.
$ xmlWriter.Formatting = ‘eingerückt’
$ xmlWriter.Indentation = 1
$ XmlWriter.IndentChar = “` t “
Erstellen Sie als Nächstes eine gut strukturierte XML-Datei, indem Sie die Deklaration mit Version 1.0 schreiben.
$ xmlWriter.WriteStartDocument ()
Machen Sie als Nächstes einen Kommentar zum Cars-Tag.
$ xmlWriter.WriteComment (‘Fahrzeugliste’)
Erstellen Sie dann das Stammelement Cars.
$ xmlWriter.WriteStartElement (‘Autos’)
Legen Sie als Nächstes XML-Attribute mit der WriteAttributeString () -Methode fest. Erstellen Sie dann ein Besitzerattribut, um anzugeben, wem alle diese Autos gehören.
$ XmlWriter.WriteAttributeString (‘Eigentümer’, ‘Jay Leno’)
Wenn das Stammelement erstellt wird, fügen Sie mithilfe von WriteStartElement () einige Elemente (Autos) hinzu. Dies teilt PowerShell mit, dass alles, was wir jetzt hinzufügen, in ein neues Element aufgenommen wird.
$ xmlWriter.WriteStartElement (‘Auto’)
Fügen Sie als Nächstes das VIN-Attribut zum ersten Car-Element hinzu und erstellen Sie dann einige Knoten innerhalb des Car-Elements, um verschiedene Attribute darzustellen.
$ xmlWriter.WriteAttributeString (‘VIN’, ‘123567891’)
$ xmlWriter.WriteElementString (‘Make’, ‘Ford’)
$ xmlWriter.WriteElementString (‘Model’, ‘Taurus’)
$ xmlWriter.WriteElementString (‘Jahr’, ‘2012’)
Beenden Sie dieses Element nach dem Hinzufügen von Informationen zu diesem bestimmten Car-Element mithilfe der WriteEndElement () -Methode.
$ xmlWriter.WriteEndElement ()
Fügen wir nun einfach ein weiteres Car-Element hinzu.
$ xmlWriter.WriteStartElement (‘Auto’)
$ xmlWriter.WriteAttributeString (‘VIN’, ‘123555567891’)
$ xmlWriter.WriteElementString (‘Make’, ‘BWM’)
$ xmlWriter.WriteElementString (‘Model’, ‘328i’)
$ xmlWriter.WriteElementString (‘Jahr’, ‘2015’)
Schließen Sie als nächstes das Wurzelelement Cars.
$ xmlWriter.WriteEndElement ()
Schließen Sie schließlich das Dokument, leeren Sie alles, was sich im internen Puffer befindet, und schließen Sie den Stream für die Dateifreigabesteuerung.
$ xmlWriter.WriteEndDocument ()
$ xmlWriter.Flush ()
$ xmlWriter.Close ()
Sie sollten jetzt ein wohlgeformtes XML-Dokument haben. Lesen Sie zur Überprüfung die XML-Datei und prüfen Sie, ob alles in Ordnung ist.

Wie gezeigt in Figur 2, Die Version, der Kommentar, das Attribut Owner und zwei Autoknoten wurden hinzugefügt. Erfolg!
Verwenden von XmlTextWriter ist der beste Weg, um XML-Dokumente zu erstellen. Es verfügt über die Funktionalität, alles auszuführen, was Sie für das XML-Dokument tun müssen, ohne sich darum kümmern zu müssen, dass alles mit einem Klartext-Editor perfekt formatiert ist.