GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Suche nach XML-Attributen PowerShell XPath

Extensible Markup Language (XML) ist ein reines Textformat, das zum Speichern strukturierter Daten verwendet wird. XML ist so geschrieben, dass es sowohl für Menschen als auch für Maschinen lesbar ist.

XML-Dokumente beginnen oft mit einer Deklaration, wie hier gezeigt:

<?xml version="1.0" encoding="utf-8"?>

Die Select-Xml Der Befehl kann verwendet werden, um XML-Dokumente mit der XPath-Abfragesprache zu durchsuchen. PowerShell v3 und höher enthält auch ein Select-Xml-Cmdlet. Dieses Cmdlet dient zum Suchen von Text in einer XML-Zeichenfolge oder in einem XML-Dokument. Insbesondere wurde es entwickelt, um XPath-Abfragen auszuführen.

In diesem Powershell-Tutorial zu XML erörtern wir, wie Sie XML durchsuchen und bestimmte Knoten extrahieren, indem Sie XML-Attribute durchsuchen. Wir verwenden dafür das Cmdlet select-Xml, die XPath-Abfrage würde sich jedoch auf Attributebene befinden. Mit den in diesem Tutorial bereitgestellten Beispielen sollten Sie in der Lage sein, XML-Daten in Powershell einfach abzufragen und die Ausgabewerte zu verwenden.

1. XML mit Attributen eingeben

Verwenden Sie für dieses Tutorial die folgende Eingabe-XML:

<Details>
        <department count="10">
                <ID>10</ID>
                <dname>Administration</dname>
                <manager>200</manager>
                <location>1700</location>
                <revenue>77</revenue>
        </department>
        <department count="20">
                <ID>20</ID>
                <dname>Marketing</dname>
                <manager>201</manager>
                <location>1800</location>
                <revenue>50</revenue>
        </department>
</Details>

2. Laden Sie das XML in PowerShell

Wir laden das XML direkt in PowerShell, wie in der folgenden Abbildung gezeigt:

PS C:\> $xml_attributes=@"
>> <Details>
>>     <department count="10">
>>         <ID>10</ID>
>>         <dname>Administration</dname>
>>         <manager>200</manager>
>>         <location>1700</location>
>>         <revenue>77</revenue>
>>     </department>
>>     <department count="20">
>>         <ID>20</ID>
>>         <dname>Marketing</dname>
>>         <manager>201</manager>
>>         <location>1800</location>
>>         <revenue>50</revenue>
>>     </department>
>> </Details>
>> "@
>>
PS C:\>

Die Variable xml_attributes enthält die XML-Daten, nach denen wir mit dem Cmdlet select-Xml suchen können.

3. XML nach Attributen in PowerShell durchsuchen – XPath

Wenn Sie alle „count“-Attributwerte als Beispiel auflisten möchten, können Sie dies mit dem folgenden Befehl tun.

C:\>powershell
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\> Select-Xml -Content $xml_attributes -XPath '//@count' | foreach {$_.node
}

#text
-----
10
20

Hier verwenden wir „//“, um das XML-Attribut direkt abzufragen, und verwenden die „foreach“-Anweisung, um den Wert in Powershell auszugeben.

4. XML-Knoten auflisten, die mit dem Attributwert übereinstimmen – Beispiel

In diesem Fall besteht die Anforderung darin, alle Abteilungsdetails aufzulisten, bei denen die Anzahl mit 10 übereinstimmt. Sie können dies einfach tun, indem Sie den Attributwert im XPath auf 10 abgleichen und die Ausgabe drucken. Der Powershell-Befehl dafür ist unten angegeben:

PS C:\> Select-Xml -Content $xml_attributes -XPath '//department[@count="10"]' |
 foreach {$_.node}


count    : 10
ID       : 10
dname    : Administration
manager  : 200
location : 1700
revenue  : 77

Zusammenfassung

XML ist einfach zu handhaben. Es kann zur Konfiguration und Datenspeicherung verwendet werden. Sie haben gesehen, wie Sie ein Startdokument manuell einrichten, es in die Shell laden und seine Elemente aufzählen. XPath kann zum Navigieren oder Durchsuchen eines XML-Dokuments verwendet werden. PowerShell (und .NET) verwendet XPath 1.0.


Linux
  1. So finden Sie eine Datei in Linux

  2. Suche nach doppelten Dateinamen ohne Berücksichtigung der Groß-/Kleinschreibung?

  3. Globale SQL-Suche

  4. Verwenden des Befehls ripgrep (rg) unter Linux

  5. So analysieren Sie XML und Strip-Tags mithilfe von XPATH-Beispielen in Linux (So kombinieren Sie mehrere Befehle mit PIPE in Linux)

Chattr-Befehl in Linux (Dateiattribute)

So suchen Sie in Nano

Systemdokumentation

Finden Sie Befehl in Linux/UNIX

Semantische Suche:Sind Keywords immer noch wichtig?

So führen Sie eine Fuzzy-Dateisuche unter Linux durch