2

次のような構成ファイル:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
    <add key="Environment" value="Dev Environment"/>
</appSettings>
</configuration>

Powershellでキー「環境」の値を取得するにはどうすればよいですか? キー「環境」を選択すると、「開発環境」が返されるはずです。

ここでlinqを使用することを好みます。アイデアを持っている人なら誰でも本当に感謝しています。

4

1 に答える 1

4

xpathをお勧めします。

まず、次のようなXmlDocumentオブジェクトを作成します。

$xml = [xml] @'
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
    <add key="Environment" value="Dev Environment"/>
</appSettings>
</configuration>
'@

...またはこれ:

$xml = [xml] (Get-Content C:\file.xml)

次に、SelectNodes または SelectSingleNode メソッドを使用して、xpath を引数として指定します。xpath はドメイン固有の言語であり、多少複雑になる可能性があります。この xpath クエリは、environment の値を持つ key という名前の属性を持つ、add という名前のすべてのノードの属性という名前の値を教えてくれます。

$xml.SelectNodes('//add[@key="Environment"]/@value')[0].'#text'

PowerShell は#text、ノードのテキストにアクセスするために使用できる XmlElement および XmlAttribute オブジェクトに NoteProperty を追加します。

于 2013-04-11T01:33:29.123 に答える