Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 使用变量获取XML节点子节点_Powershell_Powershell Core - Fatal编程技术网

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)"
}