GNU/Linux >> Linux Esercitazione >  >> Linux

Cerca attributi XML PowerShell XPath

Extensible Markup Language (XML) è un formato di testo normale utilizzato per archiviare dati strutturati. XML è scritto per essere leggibile sia dall'uomo che dalla macchina.

I documenti XML spesso iniziano con una dichiarazione, come mostrato qui:

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

Il Select-Xml Il comando può essere utilizzato per cercare documenti XML utilizzando il linguaggio di query XPath. PowerShell v3 e versioni successive includono anche un cmdlet Select-Xml. Questo cmdlet è progettato per trovare testo all'interno di una stringa XML o all'interno di un documento XML. In particolare, è progettato per eseguire query XPath.

In questo tutorial Powershell su XML, discuteremo come cercare XML ed estrarre nodi specifici, cercando attributi XML. Utilizzeremo il cmdlet select-Xml per fare ciò, tuttavia, la query XPath sarebbe a livello di attributo. Utilizzando gli esempi forniti in questo tutorial, dovresti essere in grado di eseguire facilmente query sui dati XML in Powershell e utilizzare i valori di output.

1. Inserisci XML con attributi

Utilizza il seguente codice XML di input per questo tutorial:

<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. Carica l'XML in PowerShell

Caricheremo l'XML direttamente in PowerShell come mostrato nell'illustrazione seguente:

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:\>

La variabile xml_attributes contiene i dati XML che possiamo cercare utilizzando il cmdlet select-Xml.

3. Cerca XML per attributi in PowerShell – XPath

Se vuoi elencare tutti i valori degli attributi "count" come esempio, puoi farlo secondo il comando seguente.

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

Qui usiamo '//' per interrogare direttamente l'attributo XML e utilizziamo l'istruzione 'foreach' per stampare il valore in Powershell.

4. Elenca i nodi XML corrispondenti al valore dell'attributo – Esempio

In questo caso, il requisito è elencare tutti i dettagli del reparto in cui il conteggio corrisponde a 10. Puoi farlo facilmente abbinando il valore dell'attributo a 10 in XPath e stampando l'output. Il comando Powershell per eseguire questa operazione è fornito di seguito:

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

Riepilogo

XML è facile da usare. Può essere utilizzato per la configurazione e la memorizzazione dei dati. Hai visto come impostare manualmente un documento iniziale, caricarlo nella shell ed enumerarne gli elementi. XPath può essere utilizzato per navigare o cercare un documento XML. PowerShell (e .NET) utilizza XPath 1.0.


Linux
  1. Come trovare un file in Linux

  2. Ricerca senza distinzione tra maiuscole e minuscole di nomi di file duplicati?

  3. Reimposta la posizione di ricerca della cronologia di bash

  4. php_soap.dll mancante in Ubuntu 16

  5. Ricerca interattiva di sessioni tmux

Comando Chattr in Linux (attributi dei file)

Come cercare in Nano

Documentazione di sistema

Trova comando in Linux/UNIX

Ricerca semantica:le parole chiave sono ancora importanti?

Come eseguire una ricerca di file fuzzy in Linux