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 }
Другие вопросы по тегам