shopshop
Goto Top

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 face-sad .

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;;;

Content-Key: 566167

Url: https://administrator.de/contentid/566167

Printed on: April 25, 2024 at 11:04 o'clock

Member: user217
user217 Apr 20, 2020 at 12:51:31 (UTC)
Goto Top
Google: xml to csv converter?
Kann das Excel nicht standardmäßig?
Member: ShopShop
ShopShop Apr 20, 2020 at 12:58:34 (UTC)
Goto Top
Die XML Datei manuell umzuwandeln ist kein Problem, ich möchte aber automatisieren und über eine Batchdatei automatisieren.
Daher habe ich gedacht, über Powershell umwandeln und anhand einer Batchdatei automatisieren.
Mitglied: 143728
143728 Apr 20, 2020 at 13:17:50 (UTC)
Goto Top
$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  
Member: ShopShop
ShopShop Apr 20, 2020 at 13:52:09 (UTC)
Goto Top
Vielen Dank für die schnelle Hilfe, funktioniert !!
Mitglied: 143728
143728 Apr 20, 2020 updated at 14:23:53 (UTC)
Goto Top
Na dann bitte den grünen Haken auch nicht vergessen.