Я пытаюсь получить все узлы 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>
'@
Я пытался l oop в каждом элементе XML, используя XML метод "SelectNodes" и рекурсию, но это слишком много для управления глубиной. Так что есть Xpath для этого типа, если требуется, где я могу фильтровать узлы на основе значения атрибута.
Выход должен быть ниже 3 узлов
<Parameter Tag="Fetch"><![CDATA["Data"]]></Parameter>
<Node Tag="Fetch"><![CDATA["Data"]]></Node>
<Node1 Tag="Fetch"><![CDATA["Data"]]></Node1>