Verwenden von PowerShell zum Erstellen von XML-Dokumenten

Traditionell war das Erstellen von XML-Dokumenten von Hand ein Problem. Die spezifische, erforderliche Struktur eines XML-Dokuments bedeutet, dass das manuelle Erstellen eines Dokuments zu Fehlern führen kann. Geben Sie ein oder zwei Zeichen falsch ein, vergessen Sie, eine Klammer zu schließen, oder deklarieren Sie das nicht Namespace korrekt und das gesamte Dokument wird nicht überprüft. Es ist immer am besten, sich beim Erstellen eines XML-Dokuments auf Code zu verlassen. Code hat keine ungeschickten Finger, um Tippfehler zu machen, und vergisst nicht, bestimmte Tags hinzuzufügen.

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:

Ford

Stier

2012

BMW

328i

2015

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)

Abbildung 1: Verwenden Sie zum Erstellen das Cmdlet “Neues Objekt”

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.

Inhalt der XML-Datei
Abbildung 2: Lesen der XML-Datei, um zu überprüfen, ob alle Inhalte hinzugefügt wurden.


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.

Similar Posts

Leave a Reply