Powershell XML Datei zu CSV Umwandeln
Guten Tag zusammen,
im Zuge der weiteren Automatisierung des Bestandsabgleichs mit unseren Lieferanten arbeite ich bereits mit Batchdatein, die die Bestandsdateien vom Lieferanten herunterladen, bearbeiten und in das Warenwirtschaftssystems importieren. Über die Aufgabenplanung von Windows Serversklappt dies mit CSV Dateien bereits ziemlich gut.
Nun habe ich ein kleines Problem, ein Lieferant stellt seine Bestandsdatei nur als XML Datei zur Verfügung,die Datei beinhaltet 2000-3000 Produkte, die Anzahl der Bilder variiert..
Für den Import in unser Warenwirtschaftssystem benötige ich eine CSV Datei.Habe bereits hier im Forum nach Lösungen gesucht, auch einige gefunden (XML in CSV bat batch powershell) .Diese habe ich versucht, auf meine XML Datei umzuschreiben, leider ohne Erfolg
.
Hoffe auf Eure Untersützung.
Gruß und vielen Dank im Voraus !
Auszug XML Datei:
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
-<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Row>
-<Company>Hersteller</Company>
-<Short_Desc>Produktname +</Short_Desc>
-<sku>123456789</sku>
-<Style>12345</Style>
-<Size>3X-4X</Size>
-<Color>black</Color>
-<class>Kategorie</class>
-<qty_on_hand>0</qty_on_hand>
-<ean_barcode>12345678962</ean_barcode>
-<unit_price>20.00</unit_price>
-<unit_list_price>30.00</unit_list_price>
-<color_id>001</color_id>
-<images>
---<image>https://www.xxxxxxxx.com/abc/de/1234_005_08.jpg</image>
---<image>https://www.xxxxxxxx.com/abc/de/1234_005_08_01.jpg</image>
-</images>
-</Row>
</Root>
______________________________________________________________________________________________________________________________________________________________________________________
Benötigte CSV Datei:
sku;Style;Size;Color;class;qty_on_hand;ean_barcode;unit_price;unit_list_price;color_id;images1;images2;images3;images4;images5
123456789;12345;3X-4X;black;Kategorie;0;12345678962;20.00;30.00;1;https://www.xxxxxxxx.com/abc/de/1234_005_08.jpg;https://www.xxxxxxxx.com/abc/de/1234_005_08_01.jpg;;;
im Zuge der weiteren Automatisierung des Bestandsabgleichs mit unseren Lieferanten arbeite ich bereits mit Batchdatein, die die Bestandsdateien vom Lieferanten herunterladen, bearbeiten und in das Warenwirtschaftssystems importieren. Über die Aufgabenplanung von Windows Serversklappt dies mit CSV Dateien bereits ziemlich gut.
Nun habe ich ein kleines Problem, ein Lieferant stellt seine Bestandsdatei nur als XML Datei zur Verfügung,die Datei beinhaltet 2000-3000 Produkte, die Anzahl der Bilder variiert..
Für den Import in unser Warenwirtschaftssystem benötige ich eine CSV Datei.Habe bereits hier im Forum nach Lösungen gesucht, auch einige gefunden (XML in CSV bat batch powershell) .Diese habe ich versucht, auf meine XML Datei umzuschreiben, leider ohne Erfolg
Hoffe auf Eure Untersützung.
Gruß und vielen Dank im Voraus !
Auszug XML Datei:
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
-<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Row>
-<Company>Hersteller</Company>
-<Short_Desc>Produktname +</Short_Desc>
-<sku>123456789</sku>
-<Style>12345</Style>
-<Size>3X-4X</Size>
-<Color>black</Color>
-<class>Kategorie</class>
-<qty_on_hand>0</qty_on_hand>
-<ean_barcode>12345678962</ean_barcode>
-<unit_price>20.00</unit_price>
-<unit_list_price>30.00</unit_list_price>
-<color_id>001</color_id>
-<images>
---<image>https://www.xxxxxxxx.com/abc/de/1234_005_08.jpg</image>
---<image>https://www.xxxxxxxx.com/abc/de/1234_005_08_01.jpg</image>
-</images>
-</Row>
</Root>
______________________________________________________________________________________________________________________________________________________________________________________
Benötigte CSV Datei:
sku;Style;Size;Color;class;qty_on_hand;ean_barcode;unit_price;unit_list_price;color_id;images1;images2;images3;images4;images5
123456789;12345;3X-4X;black;Kategorie;0;12345678962;20.00;30.00;1;https://www.xxxxxxxx.com/abc/de/1234_005_08.jpg;https://www.xxxxxxxx.com/abc/de/1234_005_08_01.jpg;;;
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 566167
Url: https://administrator.de/forum/powershell-xml-datei-zu-csv-umwandeln-566167.html
Ausgedruckt am: 30.04.2025 um 07:04 Uhr
5 Kommentare
Neuester Kommentar

$in = 'D:\data.xml'
$out = 'D:\data.csv'
$xml = new-Object XML; $xml.Load($in)
$xml.Root.Row | %{
$data = $_ | Select * -Exclude Images
$cnt = 0
$_.Images | %{
$data | Add-Member -MemberType Noteproperty -Name "Images$(++$cnt)" -Value $_.Image
}
$data
} | export-csv $out -Delimiter ";" -NoType -Encoding UTF8

Na dann bitte den grünen Haken auch nicht vergessen.