Benutzer mit den meisten Antworten
Powershell xml selectnode

Frage
-
Hallo Zusammen
I habe ein Problem ein XML node im folgenden XML File auszuwählen.
Habe zwei Child Nodes unter Workbook/Worksheet und möchte nur Node mit dem Namen 'Details' auswählen und dann durch die Childnodes loopen.
Mit dieser Zeil kann ich beide nodes auswählen und durch alle cildnodes loopen brauche aber nur Node mit dem Namen 'Details'
$worksheet = $xml.Workbook.Worksheet .Table.Row
Was mache ich falsch. Kann mir jemand hier weiterhelfen..
Habe folgendes probiert um Details auzuwaheln funktioniert aber nicht. Habe immer leere Variable.
[xml]$xml = Get-Content 'C:\Temp\test.xml' $selectNode = $xml.SelectNodes("//Worksheet[@Name='Details']")
Mein XML File:
<?xml version="1.0" encoding="UTF-8"?> <Workbook xmlns:user="urn:my-scripts" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns="urn:schemas-microsoft-com:office:spreadsheet"> <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> <ActiveSheet>0</ActiveSheet> </ExcelWorkbook> <Worksheet ss:Name="Summary">
<Table>
<Row ss:StyleID="Header">
<Cell>
<Data ss:Type="String">StringValue</Data>
</Cell>
</Row>
<Row ss:StyleID="ReportHeader">
<Cell>
<Data ss:Type="String">Report</Data>
</Cell>
</Row>
<Row ss:StyleID="ReportDescr">
<Cell>
<Data ss:Type="String">Detected Group report</Data>
</Cell>
</Row>
<Row>
<Cell/>
</Row>
<Row>
<Cell/>
</Row>
<Row>
<Cell ss:StyleID="TableHeader">
<Data ss:Type="String">Severity level</Data>
</Cell>
<Cell ss:StyleID="TableHeader">
<Data ss:Type="String">Group0</Data>
</Cell>
<Cell ss:StyleID="TableHeader">
<Data ss:Type="String">Vendor alias</Data>
</Cell>
<Cell ss:StyleID="TableHeader">
<Data ss:Type="String">Application alias</Data>
</Cell>
<Cell ss:StyleID="TableHeader">
<Data ss:Type="String">Devices</Data>
</Cell>
<Cell ss:StyleID="TableHeader">
<Data ss:Type="String">Groups</Data>
</Cell>
<Cell ss:StyleID="TableHeader">
<Data ss:Type="String">Protection technologies</Data>
</Cell>
</Row>
</Table>
</Worksheet>
<Worksheet ss:Name="Details"><Worksheet ss:Name="Details"> <Table> <Row> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Severity level</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Group1</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Virtual Server</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Vendor alias</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Vendor</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Application alias</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Application</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Version</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Protection technologies</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Updates available</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Group</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Device</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Object</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Found</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">Description URL</Data> </Cell> <Cell ss:StyleID="TableHeader"> <Data ss:Type="String">IP address</Data> </Cell> </Row> <Row> <Cell ss:StyleID="TableData"> <Data ss:Type="String">Critical</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">Test</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String"/> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">Adobe Systems</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">Adobe Systems</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">Adobe Flash Player ActiveX</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">Adobe Flash Player 12 ActiveX</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">12.0.0.77</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String"/> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">Yes</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">Client</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">Test</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">C:\Windows\SysWOW64\Macromed\Flash\</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">Mittwoch, 23. März 2016 10:05:38</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">TEst</Data> </Cell> <Cell ss:StyleID="TableData"> <Data ss:Type="String">192.168.1.1</Data> </Cell> </Row> </Table> </Worksheet> </Workbook>
Danke im voraus für die Antwort...
Antworten
-
Kann es sein, dass Du beim Hier-her-Kopieren einen Sequenzfehler eingebaut hast? Zeile 54 sieht irgendwie "doppelt" aus.
... aber davon abgesehen .... sollte es nicht so funktionieren?
$xml.workbook.worksheet | Where-Object {$_.Name -eq 'Details'}
Grüße - Best regards
PS:> (79,108,97,102|%{[char]$_})-join''- Als Antwort markiert todomati Freitag, 9. Juni 2017 11:10
-
Alle Antworten
-
Kann es sein, dass Du beim Hier-her-Kopieren einen Sequenzfehler eingebaut hast? Zeile 54 sieht irgendwie "doppelt" aus.
... aber davon abgesehen .... sollte es nicht so funktionieren?
$xml.workbook.worksheet | Where-Object {$_.Name -eq 'Details'}
Grüße - Best regards
PS:> (79,108,97,102|%{[char]$_})-join''- Als Antwort markiert todomati Freitag, 9. Juni 2017 11:10
-