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 查询说给我所有名为 add 的节点的属性命名值,这些节点有一个名为 key 的属性,其值为 Environment。

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

PowerShell#text在 XmlElement 和 XmlAttribute 对象上添加了一个 NoteProperty,您可以使用它来访问节点的文本。

于 2013-04-11T01:33:29.123 回答