0

我正在尝试使用 XPath 获取所有 XML 节点,其中属性“Tag”值是“Fetch”,而不使用 PowerShell 5.1 进行太多循环。请帮忙。

[xml] $XMLValue=@'
  <Root>
     <Child>
        <Parameter Tag="Fetch"><![CDATA["Data"]]></Parameter>
        <Parameter Tag="DontFetch"><![CDATA["Data"]]></Parameter>
     </Child>
     <Child>
        <Test>
           <Node Tag="Fetch"><![CDATA["Data"]]></Node>
           <Node Tag="DontFetch"><![CDATA["Data"]]></Node>
        </Test>
     </Child>
     <Child>
     <Test>
        <Test1>
           <Node1 Tag="Fetch"><![CDATA["Data"]]></Node1>
           <Node2 Tag="DontFetch"><![CDATA["Data"]]></Node2>
        </Test1>
     </Test>     
    </Child>
   </Root>
'@

我尝试使用 XML“SelectNodes”方法和递归循环在 XML 的每个元素中,但是管理深度太多了。如果需要,是否有这种类型的 Xpath,我可以在其中根据属性值过滤节点。

输出应低于 3 个节点

<Parameter Tag="Fetch"><![CDATA["Data"]]></Parameter>
<Node Tag="Fetch"><![CDATA["Data"]]></Node>
<Node1 Tag="Fetch"><![CDATA["Data"]]></Node1>
4

0 回答 0