使用变量获取 XML 节点子节点



给定以下文件:

<environments>
<dev>
<property1>23</property1>
<property2>blue</property2>
<property3>apple</property3>
</dev>
<prod>
<property1>27</property1>
<property2>red</property2>
<property3>orange</property3>
</prod>
</environments>

和以下代码:

$environmentsFile = [System.Xml.XmlDocument](Get-Content "environments.xml");
$envs = $environmentsFile.environments;
$envName = "prod"

我将如何访问"prod"子项并遍历它们? 我已经在使用ForEach ($env in $envs.ChildNodes) {}遍历环境,我知道我这样做$envs.prod

我试过这个:

$test = $envs.SelectNodes("//$envName")
ForEach ($ele in $test) {
Write-Host $ele.value
}

但它没有输出任何东西。检查显示$test看起来只有一个节点,其中包含我想要的所有节点,所以我尝试了$test[0],但也没有用。

我做错了几件事。 此功能可根据需要:

$test = $envs.SelectNodes("//$envName")[0]
ForEach ($ele in $test.ChildNodes) {
Write-Host "$($ele.Name): $($ele.InnerText)"
}

相关内容

  • 没有找到相关文章

最新更新