Alright, another quick lesson in finding XML.
The XML node like this:
<server name="DomainController1"></server>
Use name as attribute.The XML ノードは、次のように表示されます。 ノード属性で XML を検索する方法について記事を書きました。
しかし、それはノードの実際のテキスト値に対しては役に立ちません。
$XML | Select-Xml -Xpath '//server'
そうそう……これがいいんだよ。 以下は、Remote Desktop Connection Manager ファイルのサンプルです。
<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>
SERVER named DomainController1.myDomain.demo が含まれる GROUP ノードを取得したい場合、XPath と 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'
これはグループに含まれるサーバーの name ノードを取得する方法です。 ほら、近いだろ? 英語では、この XPath ステートメントは、「DomainController1.MyDomain.demo というテキスト値を持つ NAME ノードを取得し、それは properties というノードの子ノードで、server というノードの子であり、group というノードの子である」と翻訳します。 そして、group ノードは XML の任意の場所にある可能性があります。」
私たちは、括弧の外側で受信したいノードを定義します。
私は GROUP ノードが欲しいので、他のすべてを括弧の中に詰め込みます。
$xml | Select-XML -XPath '//group'
これで group ノードが返されました。 ノードを複製し、属性を更新するか、子ノードを挿入して、更新された XML オブジェクトを元の XML ファイルに保存する準備が整いました。