使用变量获取 XML 个节点子节点
Get XML node children using a variable
给定以下文件:
<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)"
}
给定以下文件:
<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)"
}