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;;;
Please also mark the comments that contributed to the solution of the article
Content-Key: 566167
Url: https://administrator.de/contentid/566167
Printed on: April 25, 2024 at 11:04 o'clock
5 Comments
Latest comment
$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.