你如何使用PowerShell。 (点)表示元素名称中带有句点的元素?

时间:2011-06-29 20:30:27

标签: xml powershell

PowerShell在大多数情况下都非常容易使用XML。但是,我在使用“点”表示法来浏览web.config文件时遇到了麻烦。一切正常

Import-Module WebAdministration
$site = get-website | ? { $_.name -eq "My Website - 80" }
$WebConfigFile = $site.physicalPath + "\web.config"
[xml]$WebAppXml = Get-Content $WebConfigFile
$webAppXml.configuration.system.web

在最后一行,PowerShell使用intellisense填充system.web,但如果您尝试运行它,则输出为null。我知道我可以使用Xpath或.NET Xml对象,但如果我不需要,我宁愿不这样做。

3 个答案:

答案 0 :(得分:48)

$webAppXml.configuration.'system.web'

答案 1 :(得分:5)

这也有效:

e.g。

$webAppXml.configuration.["system.web"].Identity

答案 2 :(得分:2)

或者,您可以使用变量:

$subproperty = 'System.Web'
$webAppXml.configuration.$subproperty

我发现这是最有用的技术,因为它可以让我轻松切换属性。

顺便说一句,你可以使用相同的技巧来获取方法定义,而不是运行它。

希望这有助于