Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PowerShell处理XML文件问题_C#_.net_Xml_Powershell_Xpath - Fatal编程技术网

C# PowerShell处理XML文件问题

C# PowerShell处理XML文件问题,c#,.net,xml,powershell,xpath,C#,.net,Xml,Powershell,Xpath,假设我有以下XML文件,并且我想使用PowerShell(1.0版)操作XML文件以获取Foo的值(在本示例中,我想获取的值是“Foo-value”)和Goo(在本示例中,我想获取的值是“Goo-value”),有何实现方法 $FooConfig = [xml](get-content .\Foo.exe.config -ErrorAction:stop) <configuration> <appSettings> <add key="Foo" valu

假设我有以下XML文件,并且我想使用PowerShell(1.0版)操作XML文件以获取Foo的值(在本示例中,我想获取的值是“Foo-value”)和Goo(在本示例中,我想获取的值是“Goo-value”),有何实现方法

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

<configuration>
 <appSettings>
    <add key="Foo" value="Foo Value" />
    <add key="Goo" value="Goo Value" />
 </appSettings>
</configuration>
$FooConfig=[xml](获取内容。\Foo.exe.config-ErrorAction:stop)
提前感谢,,
George

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

$appSettingsSection = $fooConfig.configuration.appSettings;
$goo = $appSettingsSection.SelectSingleNode("add[@key='Goo']");
$goo.Value
或者,如果您想将add元素枚举为PowerShell集合(稍微有点PowerShell的味道:-)

将打印

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

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

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

$appSettingsSection = $fooConfig.configuration.appSettings;
$goo = $appSettingsSection.SelectSingleNode("add[@key='Goo']");
$goo.Value
或者,如果您想将add元素枚举为PowerShell集合(稍微有点PowerShell的味道:-)

将打印

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

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

然而,将XPATH与XML API结合使用的另一种方法是使用SelectNodes:

PS> $FooConfig .SelectNodes('//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

酷,我的问题被回答了!酷,我的问题被回答了!小心!这是一个配置文件,大多数配置文件都有许多“添加”节点。因此,这将抓住appSettings中的“添加”节点以及ConnectionString,天知道还有什么。小心!这是一个配置文件,大多数配置文件都有许多“添加”节点。因此,这将抓住appSettings中的“添加”节点以及ConnectionString,天知道还有什么。