Musashi 10 Geschrieben 24. September 2013 Melden Teilen Geschrieben 24. September 2013 Hallo zusammen, ich versuche per Powershell eine XML-Datei auszulesen. Die XML-Datei ist etwas umfangreicher und bereitet mir deswege einige Probleme. Die XML habe ich mal hier gekürzt dargestellt: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <thinclients> <thinclient> <tcname>Thinclient1</tcname> <firmware> <model>ThinClientModel</model> <version>4.2.3.4</version> </firmware> <settings> <pclass profile="false" name="x.drivers.currentdriver"> <pvalue instancenr="-1">via_pro</pvalue> </pclass> <pclass profile="true" name="x.xserver0.colordepth"> <pvalue instancenr="-1">16</pvalue> </pclass> </settings> </thinclient> </thinclients> Mein Ziel ist es folgende Dinge auszugeben: tcname ("Thinclient1") pvalue ("via_pro") Gefiltert jedoch nach pclass name = "x.drivers.currentdriver" Also folgende Ausgabe: Thinclient1 via_pro Ich hoffe ihr könnt mir etwas weiterhelfen. Viele Grüße Musashi Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 24. September 2013 Melden Teilen Geschrieben 24. September 2013 Wo ist jetzt dein Problem? Wie hast du denn angefangen? Kannst du XML? Zitieren Link zu diesem Kommentar
Musashi 10 Geschrieben 24. September 2013 Autor Melden Teilen Geschrieben 24. September 2013 [xml]$meinexml = get-content C:\ps\meinskript.xml foreach( $var in $meinexml.thinclients.thinclient.settings.pclass) {if ($meinexml.thinclients.thinclient.settings.pclass.name -eq “x.drivers.currentdriver”) { write-host $var.pvalue.'#text' }} Dieses Skript habe ich schon zusammen. Jedoch wird nicht nach "x.drivers.currentdriver" gefiltert. Ausgabe ist immer: via_pro 16 Später muss ich natürlich noch irgendwie die Verknüpfung von dem tcname ("Thinclient1") zu dem entsprechenden pvalue ("via_pro") hinkriegen. Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 26. September 2013 Melden Teilen Geschrieben 26. September 2013 So wird ein Schuh draus ;) [xml]$meinexml = get-content C:\ps\meinskript.xml $meinexml | ? {$_.thinclients.thinclient.settings.pclass.name -eq "x.drivers.currentdriver"} | % { $_.thinclients.thinclient.tcname $_.thinclients.thinclient.settings.pclass.pvalue.InnerText } Hier werden aber noch beide Werte von pvalue angezeigt, die Trennung ist in der xml nicht sauber. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.