PowerShell: получение определенного внутреннего элемента XML - PullRequest
2 голосов
/ 26 мая 2010

У меня есть XML-документ с такой структурой:

<Fruits>
    <Fruit>
        <Code>1</Code>
        <Name>Apple</Name>
    </Fruit>
</Fruits>

Как лучше всего получить элемент <Fruit> по его коду (или любому другому полю) в коде PowerShell 1? (Не XPath, так как он поддерживается только в PowerShell 2)

Спасибо!

Ответы [ 2 ]

5 голосов
/ 26 мая 2010

Вы можете получить доступ к узлам, как объекты из 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 }
3 голосов
/ 26 мая 2010

Вы можете использовать XPath в V1 следующим образом, если вы предпочитаете:

$xml = [xml](get-content $xmlFile)
$xml.SelectSingleNode("//Fruit[2]")

Code                                                        Name
----                                                        ----
2                                                           Orange
...