PowerShell操纵XML文件问题

假设我有以下XML文件,并且我想使用PowerShell(版本1.0)来操作XML文件以获取Foo的值(在此示例中,我想得到的值是“Foo Value”)和Goo(在此样本,我想得到的价值是“Goo Value”),任何想法如何实现?

$FooConfig = [xml](get-content .\Foo.exe.config -ErrorAction:stop)       

乔治,提前谢谢

XPath API在PowerShell下非常活跃(毕竟你的XML只是.NET对象),如果你只想要一个值,它通常是最容易使用的:

 $appSettingsSection = $fooConfig.configuration.appSettings; $goo = $appSettingsSection.SelectSingleNode("add[@key='Goo']"); $goo.Value 

或者如果你想枚举添加元素作为PowerShell集合(更多PowerShell’ish 🙂

 $appSettingsSection = $fooConfig.configuration.appSettings.add 

会打印

 key value --- ----- Foo Foo Value Goo Goo Value 

当然,您可以将结果传递给其他命令,以执行您喜欢的任何处理。

然而,使用XPATH和XML API的另一种方法是使用SelectNodes:

 PS> $FooConfig .SelectNodes('//add') key value --- ----- Foo Foo Value Goo Goo Value