0 Pluspunkte 0 Minuspunkte

Wie kann ich eine XML Datei in Powershell lesen und bestimmte Elemente in einer Schleife ausgeben? Ich habe z.B mehrere verschiedene Elemente (Switch, Router) wie kann ich alle "Switch" Elemente in einer Schleife ausgeben?

<Root>
  <Switch>
    <Vendor>Cisco</Vendor>
    <Location>2</Location>
  </Switch>
  <Switch>
    <Vendor>HP</Vendor>
    <Location>1</Location>
  </Switch>
  <Router>
    <Vendor>Cisco</Vendor>
    <Location>1</Location>
  </Router>
  <Switch>
    <Vendor>Cisco</Vendor>
    <Location>4</Location>
  </Switch>
  <Router>
    <Vendor>Mikrotik</Vendor>
    <Location>3</Location>
  </Router>
  <Switch>
    <Vendor>HP</Vendor>
    <Location>8</Location>
  </Switch>
</Root>
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Mit DocumentElement.ChildNodes kannst du alle Elemente durchlaufen und in einer Schleife für jedes Element prüfen ob es den Anforderungen entspricht..

$xmlContent = [xml](Get-Content -Path "device_list.xml")
$rootNode = $xmlContent.DocumentElement

foreach ($element in $rootNode.ChildNodes) {

    if($element.SelectSingleNode("Vendor").InnerText -eq 'HP') {
    
        Write-Host $element.SelectSingleNode("Vendor").InnerText
        
    }
    
}
von