Alright, une autre leçon rapide pour trouver du XML.
Vous voyez, un nœud XML comme ceci:
<server name="DomainController1"></server>
Utilise le nom comme attribut. Je viens d’écrire un post sur la façon de rechercher XML par attribut de nœud.
Mais cela ne vous fera pas une once de bien contre la valeur textuelle réelle du nœud.
<server>DomainController1</server>
Bête totalement différente. L’astuce ici est d’utiliser la méthode « text() ».
$XML | Select-Xml -Xpath '//server'
Oh oui… C’est le bon truc.
Vous pouvez aussi chercher quelques niveaux plus bas. Voici un exemple d’un fichier du gestionnaire de connexion au bureau à distance.
<group> <properties> <expanded>True</expanded> <name>DomainControllers</name> </properties> <logonCredentials inherit="None"> <profileName scope="File">myDomain\myAccount</profileName> </logonCredentials> <server> <properties> <name>DomainController1.myDomain.demo</name> </properties> </server></group>
Si je veux obtenir le nœud GROUP qui a le SERVER nommé DomainController1.myDomain.demo dedans… je peux le faire avec XPath et Select-XML.
#This isn't exactly it, but it's a learning step to help you better understand.$xml | Select-XML -XPath '//group/server/properties/name'
Voici comment obtenir le nœud name du serveur qui est dans le groupe. Vous voyez comme c’est proche ? N’apprenez-vous pas déjà ?
En anglais, cette instruction XPath se traduit par « Donnez-moi le nœud NAME qui a la valeur textuelle de DomainController1.MyDomain.demo, qui est le nœud enfant d’un nœud appelé properties, qui est enfant d’un nœud appelé server, qui est enfant d’un nœud appelé group. ET, ce nœud groupe pourrait être n’importe où dans le XML. »
Nous définissons à l’extérieur des crochets le nœud que nous voulons recevoir. Nous définissons à l’intérieur des parenthèses les évaluations pour y arriver.
Puisque je veux le noeud GROUPE, je vais fourrer tout le reste à l’intérieur des parenthèses.
$xml | Select-XML -XPath '//group'
Maintenant cela renvoie le noeud groupe. Vous êtes prêt à cloner le nœud, à mettre à jour les attributs ou à insérer un nœud enfant, puis à enregistrer l’objet XML mis à jour de nouveau dans le fichier XML d’origine.