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 ファイルに保存する準備が整いました。

コメントを残す

メールアドレスが公開されることはありません。