atlas2
Goto Top

XML mit Powershell Ausgabe bearbeiten

Hallo,

versuche gerade eine XML Datei mit Hilfe der Powershell zu bearbeiten. Die XML ist so aufgebaut:
<?xml version="1.0" encoding="utf-8"?>  
<Labelling version="1.0">  
<Document source_id="1">  
<Page source_id="1">  
<Header>
<SeparatorDUSERDEF>Number</SeparatorDUSERDEF>
<Property FormattingType="0" FormattingLength="32" FormattingRAlign="1">  
<PropertyName>GNumber</PropertyName>
<PropertyValue>4711</PropertyValue>
</Property>
</Header>
<ColumnHeader DataType="Text">  
<PropertyName>Referenz / OBK</PropertyName>
</ColumnHeader>
<ColumnHeader DataType="Text">  
<PropertyName>Artikel / Size</PropertyName>
</ColumnHeader>
<Line source_id="1" separator=";">  
<Label source_id="1">  
<Property FormattingType="0" FormattingLength="32" FormattingRAlign="1">  
<PropertyName>Artikel / Wide</PropertyName>
<PropertyValue>=AB+CD-EF7</PropertyValue>
</Property>
<Property FormattingType="0" FormattingLength="32" FormattingRAlign="1">  
<PropertyName>Referenz / OBK</PropertyName>
<PropertyValue>6,3x32mm 1,6B</PropertyValue>
</Property>
</Label>
</Line>
...
</Page>
</Document>
</Labelling>
Benötigt wird der Wert von „PropertyValue“. Da es pro „<Label source_id="1">“ zwei Werte gibt, werden diese bei der Ausgabe untereinander geschrieben.
„=AB+CD-EF7
6,3x32mm 1,6B
...“
Benötigt wird aber so ein Ergebnis „=AB+CD-EF7 6,3x32mm 1,6B“. Konnte mir nur mit dem Umweg über eine tmp.txt helfen. Meine Frage ist ob man das auch ohne den Umweg erreichen kann.
[XML]$xmlfile = Get-Content "C:\datei.xml"  
$xmlfile.Labelling.Document.Page.Line.Label.Property.PropertyValue > "C:\tmp.txt"  
Get-Content -Path "C:\tmp.txt" -ReadCount 2 | ForEach-Object {-join ($_,' ',$_[1])}   

Habe leider noch nicht so viel Erfahrung mit der Powershell.

Danke VG

Content-ID: 953621803

Url: https://administrator.de/forum/xml-mit-powershell-ausgabe-bearbeiten-953621803.html

Ausgedruckt am: 22.12.2024 um 12:12 Uhr

148934
Lösung 148934 09.07.2021 um 11:30:58 Uhr
Goto Top
$xmlfile.Labelling.Document.Page.Line.Label | %{ $_.Property.PropertyValue -join ' '}  
Atlas2
Atlas2 09.07.2021 um 12:40:20 Uhr
Goto Top
Super, vielen Dank !