PowerShell: получение определенного внутреннего элемента XML
У меня есть документ XML с этой структурой:
<Fruits>
<Fruit>
<Code>1</Code>
<Name>Apple</Name>
</Fruit>
</Fruits>
Каков наилучший способ получить <Fruit>
элемент по его коду (или любому другому полю) в коде PowerShell 1?
(Не XPath, так как он поддерживается только в PowerShell 2)
Спасибо!
2 ответа
Решение
Вы можете использовать XPath в V1 следующим образом, если вы предпочитаете:
$xml = [xml](get-content $xmlFile)
$xml.SelectSingleNode("//Fruit[2]")
Code Name
---- ----
2 Orange
Вы можете получить доступ к узлам, как объекты из Posh V1
$xml = [xml]"<Fruits>
<Fruit>
<Code>1</Code>
<Name>Apple</Name>
</Fruit>
<Fruit>
<Code>2</Code>
<Name>Orange</Name>
</Fruit>
</Fruits>"
$orange = $xml.Fruits.Fruit | ? { [int]$_.Code -eq 2 }