Neues Thema starten

CSV zu XML inkl. Schleife

Hallo zusammen,


wir erhalten eine CSV Datei mit folgendem Format:


image



Diese CSV Datei muss dann in ein XML Format transformiert:


<Vorname>

<Nachname>

<Adresse>

  <Bestellposition 1>

  <Menge 1>

  <EAN 1>

  <Artikelbezeichnung 1>

  <Bestellposition n>

  <Menge n>

  <EAN n>

  <Artikelbezeichnung n>


Lösen würden wir es über den "TextHTMLWriter". Allerdings haben wir aktuell keinen Ansatz, wie wir durch eine Schleife und IF-Abfragen diesen Aufbau der CSV in das Format der XML Datei bekommen.


Könnt ihr da weiterhelfen? Wir würden uns über ein Feedback freuen.


Viele Grüße

Daniel Ehrlich


Hallo Herr Ehrlich,


hilft Ihnen diese Anleitung weiter?

Der einzige Unterschied zur Anleitung ist bei Ihnen die CSV-Datei als Quelle.


Ersetzen Sie einfach den SearchDatastore-Step aus der Anleitung durch z.B. einen SpreadsheetCSVReader. Ab da sollte das alles analog sein. 

Hallo, 

diese Doku hatte ich mir bereits durchgelesen um den Grundaufbau der XML vorzubereiten.

Allerdings konnte ich nicht herauslesen, wie es möglich ist, eine unbekannte CSV-Spaltenüberschrift zu erhalten und diese zu prüfen, um dann die jeweiligen Bestellpositionen aufzubauen. 


Hätten Sie hier eine Lösung?


Viele Grüße

Daniel Ehrlich

Ah ok verstanden. Sie wollen es komplett generisch :)


Exemplarisch könnte das so aussehen:

 

<?xml version="1.0" encoding="UTF-8"?>

<#list spreadsheet@SearchMasterDatastore_1.getRows() as row> 
	<#list row.getCols() as col>
		    <${col.getTitle()!}><![CDATA[${col.get()!}]]></${col.getTitle()!}>
	</#list>
</#list>

 

Hier ist der Gedanke, dass man zwei geschachtelte Schleifen hat. Die erste iteriert über die Zeilen (rows) und die zweite über jede Spalte der Zeile (col). 

Die Tag-Namen werden dann über col.getTitle() zusammengebaut. Über col.get() erhält man den Wert der Spalte / Zelle. 


Wir versuchen das Cookbook mal noch um diese generischen Ansatz zu erweitern.


Hallo,


ich habe die Schleifen erstellt, erhalte dann alle Spaltennamen in der CSV Datei. 

Folgende Probleme habe ich aber jetzt:


1. Es werden nicht alle CSV Spalten für die XML gebraucht und können ignoriert werden.


2. Ich muss innerhalb der Schleife nach einem Spaltennamen abfragen, welcher ähnlich "Bestellposition%" ist. Sobald es einen Treffer gibt, müssen die Spalten "Bestellposition n", "Menge", "EAN" und "Artikelbezeichnung"  unterhalb des XML Tags aufgebaut werden. 


XML Format: 


<Vorname>

<Nachname>

<Adresse>

  <ORDER_LINE>

  <Bestellposition 1>

  <Menge 1>

  <EAN 1>

  <Artikelbezeichnung 1>

  </ORDER_LINE>

  <ORDER_LINE>

  <Bestellposition n>

  <Menge n>

  <EAN n>

  <Artikelbezeichnung n>

  </ORDER_LINE>


Könnten Sie hier evtl. auch weiterhelfen?


Viele Grüße

Daniel Ehrlich

Hier könnte die String-Funktion starts_with() helfen.

Hier finden Sie ein Beispiel.

Danke, ich denke damit lässt sich es umsetzen.

Anmelden um einen Kommentar zu veröffentlichen