GNU/Linux >> Tutoriels Linux >  >> Linux

Rechercher des attributs XML PowerShell XPath

Le langage de balisage extensible (XML) est un format de texte brut utilisé pour stocker des données structurées. XML est écrit pour être à la fois lisible par l'homme et par la machine.

Les documents XML commencent souvent par une déclaration, comme illustré ici :

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

Le Select-Xml La commande peut être utilisée pour rechercher des documents XML à l'aide du langage de requête XPath. PowerShell v3 et versions ultérieures incluent également une applet de commande Select-Xml. Cette applet de commande est conçue pour rechercher du texte dans une chaîne XML ou dans un document XML. Plus précisément, il est conçu pour exécuter des requêtes XPath.

Dans ce tutoriel Powershell sur XML, nous verrons comment rechercher XML et extraire des nœuds spécifiques, en recherchant des attributs XML. Nous utiliserons l'applet de commande select-Xml pour ce faire, cependant, la requête XPath serait au niveau de l'attribut. À l'aide des exemples fournis dans ce didacticiel, vous devriez pouvoir interroger facilement des données XML dans Powershell et utiliser les valeurs de sortie.

1. Saisir du XML avec des attributs

Utilisez le code XML d'entrée suivant pour ce didacticiel :

<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. Charger le XML dans PowerShell

Nous allons charger le XML directement dans PowerShell comme indiqué dans l'illustration ci-dessous :

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 variable xml_attributes contient les données XML que nous pouvons rechercher à l'aide de l'applet de commande select-Xml.

3. Rechercher XML par attributs dans PowerShell - XPath

Si vous souhaitez répertorier toutes les valeurs d'attribut "count" à titre d'exemple, vous pouvez le faire en suivant la commande ci-dessous.

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

Ici, nous utilisons '//' pour interroger directement l'attribut XML et utilisons l'instruction 'foreach' pour imprimer la valeur dans Powershell.

4. Liste des nœuds XML correspondant à la valeur d'attribut - Exemple

Dans ce cas, l'exigence est de répertorier tous les détails du service où le nombre correspond à 10. Vous pouvez le faire facilement en faisant correspondre la valeur de l'attribut à 10 dans le XPath et en imprimant la sortie. La commande Powershell pour ce faire est fournie ci-dessous :

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

Résumé

XML est facile à utiliser. Il peut être utilisé pour la configuration et le stockage des données. Vous avez vu comment configurer manuellement un document de départ, le charger dans le shell et énumérer ses éléments. XPath peut être utilisé pour naviguer ou rechercher un document XML. PowerShell (et .NET) utilise XPath 1.0.


Linux
  1. Comment trouver un fichier sous Linux

  2. Recherche insensible à la casse des noms de fichiers en double ?

  3. Recherche SQL globale

  4. Utilisation de la commande ripgrep (rg) sous Linux

  5. Supprimer la surbrillance de la recherche VIM

Commande Chattr sous Linux (attributs de fichier)

Comment effectuer une recherche dans Nano

Documentation système

Rechercher la commande sous Linux/UNIX

Recherche sémantique :les mots clés sont-ils toujours importants ?

Comment faire une recherche floue de fichiers sous Linux