PowerShell offre plusieurs façons de lire des documents XML, sans écrire beaucoup de code ni utiliser XPath. Voici comment vous pouvez commencer.
La manipulation de XML est l’un de ces sujets qui fait grincer des dents à quiconque l’a déjà fait. C’est généralement long, difficile à comprendre et juste une douleur générale dans les fesses. Jouer avec XML sur d’autres langages que PowerShell nécessite essentiellement de mémoriser l’arborescence XML pour vous assurer que vous manipulez le bon nœud au bon niveau. En plus de cela, vous devrez probablement également apprendre à écrire des requêtes XPath obscures pour trouver le contenu d’un document XML.
PowerShell et la lecture de fichiers XML
PowerShell a toujours XPath mais vous n’avez pas nécessairement à l’utiliser. PowerShell fournit un moyen facile de lire les fichiers XML, de les manipuler et enfin de les sauvegarder sur le disque sans écrire beaucoup de code ni connaître XPath. PowerShell le fait en fournissant la notation par points de l’utilisateur pour signifier chaque nœud du document XML. Mais d’abord, commençons à lire un document XML.
Une façon de lire un document XML dans PowerShell consiste à taper une variable dans le type. Pour créer cette variable, nous pouvons utiliser l’applet de commande Get-Content pour lire tout le texte d’un document XML. Pour taper la sortie de Get-Content, nous pouvons simplement ajouter le texte avant la variable. Cela indique à PowerShell que nous avons besoin de cette variable typecasted en tant que système.XML.Type XmlDocument au lieu du type de tableau par défaut qui provient normalement de Get-Content.
$XmlDocument= Get-Content-Path C:Cars.xml
Dans cet article, nous utiliserons un fichier XML appelé Cars.xml à titre d’exemple, qui contient diverses marques et modèles de voitures.
Une fois que vous avez exécuté Get-Content pour lire le texte brut du document XML et convertir la sortie en système de type.XML.XmlDocument, vous avez maintenant une variable appeléeXXmlDocument qui contient l’arbre de nœuds XML entier qui représente ce document.
À ce stade, la lecture du document est une tâche triviale en raison de la notation par points susmentionnée. Puisque nous avons maintenant le document XML en mémoire, nous pouvons explorer l’arbre.
Remarquez comment nous pouvons aller de plus en plus loin dans le document en utilisant la notation par points? Si nous atteignons un point dans le document qui contient un nœud de type similaire (Cars), nous pouvons alors le traiter comme un tableau PowerShell et spécifier un numéro d’index du nœud que nous recherchons. Dans ce cas, nous trouvons la première voiture dans le document en spécifiant le numéro d’index 0.
Disons que vous voulez trouver toutes les voitures de ce document XML qui ont quatre sièges ou plus. Simplement en utilisant l’applet de commande PowerShell commune Where-Object, nous pouvons facilement récupérer ces informations.
Combinaison de nœuds
Notez que PowerShell combine à la fois les nœuds (éléments) et les attributs XML dans un seul ensemble ? Cela vous permet de parcourir facilement le document en utilisant simplement la notation par points et l’applet de commande Where-Object. PowerShell connaît tous les attributs et sous-éléments associés à chaque XML parent et les affiche dans un joli tableau pour vous, par défaut.
Nous vous avons montré une méthode que vous pouvez utiliser pour lire des documents XML avec. L’une des bonnes choses à propos de PowerShell est qu’il peut être aussi facile ou aussi difficile que vous le souhaitez. Nous vous avons montré comment trouver des nœuds dans un document XML en utilisant la notation par points. Si jamais vous avez besoin de faire une recherche plus avancée, nous vous suggérons d’utiliser des applets de commande comme Select-Xml pour créer des requêtes plus puissantes. Quoi qu’il en soit, PowerShell vous permettra de lire et de trouver à peu près n’importe quoi dans un document XML. Le reste dépend de vous.