PowerShell - выборка всех узлов XML на основе значения атрибута

Я пытаюсь получить все узлы XML, где значение атрибута "Tag" равно "Fetch" ​​с помощью XPath, без особого зацикливания с использованием 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, используя метод XML "SelectNodes" и рекурсивно, но это слишком много для управления глубиной. Итак, существует ли Xpath для этого типа, если требуется, где я могу фильтровать узлы на основе значения атрибута.

Выход должен быть ниже 3 узлов

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

0 ответов

Другие вопросы по тегам