Auswählen von Attributen in XML mit XPath

Rohan Timalsina 30 Januar 2023
  1. Verwenden des Cmdlet Select-Xml zum Auswählen von Attributen in XML in PowerShell
  2. Verwenden der Methode SelectNodes zum Auswählen von Attributen in XML in PowerShell
  3. Verwendung von das Cmdlet Get-Content zum Auswählen von Attributen in XML in PowerShell
Auswählen von Attributen in XML mit XPath

XML steht für Extensible Markup Language. Eine XML-Datei ist eine einfache Textdatei mit benutzerdefinierten Tags zum Definieren der Dokumentstruktur.

Es wird hauptsächlich verwendet, um strukturierte Informationen zu speichern und zu teilen. Der Inhalt der XML-Datei sieht ähnlich aus wie die HTML-Datei.

In diesem Lernprogramm werden verschiedene Methoden zum Auswählen von Attributen in XML mithilfe von XPath in PowerShell vorgestellt.

Verwenden des Cmdlet Select-Xml zum Auswählen von Attributen in XML in PowerShell

Mit dem Cmdlet Select-Xml können Sie mithilfe von XPath Text in einem XML-String oder -Dokument finden.

Dies ist ein einfaches Beispiel für eine XML-Datei.

<website>
<site name="DelftStack">
<content>
<topic>PowerShell Howtos</topic>
<article>How to convert XML into CSV?</article>
</content>
</site>
<site name="DelftStack">
<content>
<topic>Linux Howtos</topic>
<article>Delete Files Recursively in Linux</article>
</content>
</site>
</website>

Der folgende Befehl sucht nach der XPath-Abfrage topic in einer new.xml-Datei im Verzeichnis C:\Users\rhntm.

Select-Xml -Path C:\Users\rhntm\new.xml -XPath "//topic" | Select-Object -ExpandProperty Node

Ausgabe:

#text
-----
PowerShell Howtos
Linux Howtos

Der Parameter -Path gibt den Pfad und Dateinamen der zu durchsuchenden XML-Dateien an.

Der Parameter -XPath gibt eine zu durchsuchende XPath-Abfrage an. Beim Abfragetext wird zwischen Groß- und Kleinschreibung unterschieden.

Verwenden der Methode SelectNodes zum Auswählen von Attributen in XML in PowerShell

Die Methode SelectNodes() wählt eine Liste von Knoten aus, die mit dem XPath-Ausdruck in einer XML-Datei übereinstimmen.

Das folgende Beispiel wählt den Knoten content aus einer new.xml-Datei aus.

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.SelectNodes('//content')

Ausgabe:

topic             article
-----             -------
PowerShell Howtos How to convert XML into CSV?
Linux Howtos      Delete Files Recursively in Linux

Das [xml] wandelt die Variable in ein XML-Objekt um. Das Cmdlet Get-Content holt sich den Inhalt einer C:\Users\rhntm\new.xml und speichert ihn in der Variablen $xml.

Um das spezifische Attribut auszuwählen, können Sie das Cmdlet Select-Object verwenden. Beispielsweise wählt der folgende Befehl nur den article aus einer new.xml-Datei aus.

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.SelectNodes('//content') | Select-Object article

Ausgabe:

article
-------
How to convert XML into CSV?
Delete Files Recursively in Linux

Verwendung von das Cmdlet Get-Content zum Auswählen von Attributen in XML in PowerShell

Wie Sie oben gesehen haben, ruft das Cmdlet Get-Content den Inhalt einer XML-Datei ab. Sie können den Inhalt in einer Variablen speichern und in ein XML-Objekt umwandeln.

Das folgende Beispiel zeigt, wie man Get-Content verwendet und Attribute in einer XML-Datei auswählt.

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.website.site.content.topic

Ausgabe:

PowerShell Howtos
Linux Howtos

Dies ist eine einfache Methode, wenn Sie den Textwert aus der XML-Datei benötigen. Wir hoffen, dass dies Ihnen bei der Auswahl von Attributen in XML in PowerShell geholfen hat.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Verwandter Artikel - PowerShell XML