如何在PowerShell中从不同的xml节点动态读取特定的XML属性

时间:2019-11-21 10:34:55

标签: xml powershell

我有以下XML,需要动态读取属性,但是我一直坚持在PS中寻找正确的方法:

<DataGroups>
  <Category1 Identifier="Project789">
  <Category2 Identifier="Project234">
  <SimpleCategory56 Identifier="Project56">
  ......
</DataGroups>  

到目前为止,我已经尝试了以下方法,该方法可以工作,但是如何动态地执行此操作呢?

$xml = [xml](get-content $Path)
$test = $xml.DataGroups.Category1.Identifier

我也尝试过这样做:

$xml = [xml](get-content $Path)
Select-Xml -Xml $xml -XPath "//Category1/@Identifier"

但是后来我变得有点神秘了,

Node       Path        Pattern
----       ----        -------
Identifier InputStream //Category1/@Identifier

1 个答案:

答案 0 :(得分:1)

您在正确的轨道上。您只需在Select-Xml中进行尝试:

$xml = [xml](get-content $Path)
(Select-Xml -Xml $xml -XPath "//./@Identifier").Node.Value

请尝试让我知道。它应该返回

Project789
Project234
Project56