Powershell 使用变量获取XML节点子节点
给定以下文件:Powershell 使用变量获取XML节点子节点,powershell,powershell-core,Powershell,Powershell Core,给定以下文件: <environments> <dev> <property1>23</property1> <property2>blue</property2> <property3>apple</property3> </dev> <prod> <property1>27</property1>
<environments>
<dev>
<property1>23</property1>
<property2>blue</property2>
<property3>apple</property3>
</dev>
<prod>
<property1>27</property1>
<property2>red</property2>
<property3>orange</property3>
</prod>
</environments>
我如何访问“prod”子项并遍历它们?我已经在使用ForEach($env in$env.ChildNodes){}
遍历环境,我知道我可以做$env.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)"
}
$test = $envs.SelectNodes("//$envName")[0]
ForEach ($ele in $test.ChildNodes) {
Write-Host "$($ele.Name): $($ele.InnerText)"
}