配置文件,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Environment" value="Dev Environment"/>
</appSettings>
</configuration>
如何在Powershell中获得关键“环境”的价值?我的意思是当你选择键“环境”时它应该返回“Dev Environment”。
我更喜欢linq在这里使用任何有任何想法的人都非常欣赏。
答案 0 :(得分: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的所有节点的attribue命名值,它具有一个名为key的属性,其值为Environment。
$xml.SelectNodes('//add[@key="Environment"]/@value')[0].'#text'
PowerShell在XmlElement和XmlAttribute对象上添加#text
NoteProperty,可用于访问节点文本。