Sélectionner des attributs dans XML à l'aide de XPath

Rohan Timalsina 30 janvier 2023
  1. Utilisez l’applet de commande Select-Xml pour sélectionner des attributs en XML dans PowerShell
  2. Utilisez la méthode SelectNodes pour sélectionner des attributs en XML dans PowerShell
  3. Utilisez l’applet de commande Get-Content pour sélectionner des attributs en XML dans PowerShell
Sélectionner des attributs dans XML à l'aide de XPath

XML signifie Extensible Markup Language. Un fichier XML est un fichier texte brut comportant des balises personnalisées pour définir la structure du document.

Il est principalement utilisé pour stocker et partager des informations structurées. Le contenu du fichier XML ressemble au fichier HTML.

Ce didacticiel présentera différentes méthodes de sélection d’attributs en XML à l’aide de XPath dans PowerShell.

Utilisez l’applet de commande Select-Xml pour sélectionner des attributs en XML dans PowerShell

L’applet de commande Select-Xml vous permet de rechercher du texte dans une chaîne ou un document XML à l’aide de XPath.

Voici un exemple simple de fichier XML.

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

La commande suivante recherche la requête XPath topic dans un fichier new.xml du répertoire C:\Users\rhntm.

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

Production:

#text
-----
PowerShell Howtos
Linux Howtos

Le paramètre -Path spécifie le chemin et les noms de fichier des fichiers XML à rechercher.

Le paramètre -XPath spécifie une requête XPath à rechercher. Le texte de la requête est sensible à la casse.

Utilisez la méthode SelectNodes pour sélectionner des attributs en XML dans PowerShell

La méthode SelectNodes() sélectionne une liste de nœuds correspondant à l’expression XPath dans un fichier XML.

L’exemple suivant sélectionne le nœud content à partir d’un fichier new.xml.

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

Production:

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

Le [xml] convertit la variable en un objet XML. L’applet de commande Get-Content récupère le contenu d’un C:\Users\rhntm\new.xml et l’enregistre dans la variable $xml.

Pour sélectionner l’attribut spécifique, vous pouvez utiliser l’applet de commande Select-Object. Par exemple, la commande suivante sélectionne uniquement l’article d’un fichier new.xml.

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

Production:

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

Utilisez l’applet de commande Get-Content pour sélectionner des attributs en XML dans PowerShell

Comme vous l’avez vu plus haut, l’applet de commande Get-Content récupère le contenu d’un fichier XML. Vous pouvez enregistrer le contenu dans une variable et le convertir en objet XML.

L’exemple suivant montre comment utiliser Get-Content et sélectionner des attributs dans un fichier XML.

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

Production:

PowerShell Howtos
Linux Howtos

Il s’agit d’un moyen simple à utiliser si vous voulez la valeur texte du fichier XML. Nous espérons que cela vous a aidé à sélectionner des attributs en XML dans PowerShell.

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