CSV Werte jeweils in einzelne XML-exportieren
Hallo Zusammen,
derzeit muß ich Werte aus unterschiedlichen Quellen in andere Formate bringen. Vieles konnte ich lösen, jetzt sitze ich an folgender Nuß:
CSV-Datei mit folgendem Inhalt
FELD1;FELD2;FELD3;FELD4
Wert1;Wert2;Wert3;Wert4
Wert1;Wert2;Wert3;Wert4
Wert1;Wert2;Wert3;Wert4
usw.
Jede Zeile soll jetzt in EINE XML-Datei umgesetzt werden
<FELD NAME="FELD1">Wert1</FELD>
<FELD NAME="FELD2">Wert2</FELD>
<FELD NAME="FELD3">Wert3</FELD>
<FELD NAME="FELD4">Wert4</FELD>
zusätzlich natürlich die üblichen HEADER und sonstigen XML-Spezifikationen.
Die Datei kann einen beliebigen Namen tragen.
Klasse wäre natürlich eine Batch mit der die Sache einfach automatisiert abläuft.
Danke
Ralf
derzeit muß ich Werte aus unterschiedlichen Quellen in andere Formate bringen. Vieles konnte ich lösen, jetzt sitze ich an folgender Nuß:
CSV-Datei mit folgendem Inhalt
FELD1;FELD2;FELD3;FELD4
Wert1;Wert2;Wert3;Wert4
Wert1;Wert2;Wert3;Wert4
Wert1;Wert2;Wert3;Wert4
usw.
Jede Zeile soll jetzt in EINE XML-Datei umgesetzt werden
<FELD NAME="FELD1">Wert1</FELD>
<FELD NAME="FELD2">Wert2</FELD>
<FELD NAME="FELD3">Wert3</FELD>
<FELD NAME="FELD4">Wert4</FELD>
zusätzlich natürlich die üblichen HEADER und sonstigen XML-Spezifikationen.
Die Datei kann einen beliebigen Namen tragen.
Klasse wäre natürlich eine Batch mit der die Sache einfach automatisiert abläuft.
Danke
Ralf
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 156966
Url: https://administrator.de/contentid/156966
Ausgedruckt am: 23.11.2024 um 08:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo nulpen!
Wenn's auch VBS sein dürfte (mit Batch ist das vergleichsweise mühsam):
Grüße
bastla
Wenn's auch VBS sein dürfte (mit Batch ist das vergleichsweise mühsam):
CSV = "Die.csv"
Header = "Hier die Header-Daten eintragen"
Dateiname = "D:\Beliebiger Name"
Typ= ".xml"
Nr = 100001 'für laufende Nummer im Dateinamen
Stellen = 5 'Stellenanzahl der laufenden Nummer
Delim = ";" 'Trennzeichen der CSV
Set fso = CreateObject("Scripting.FileSystemObject")
Zeilen = Split(fso.OpenTextFile(CSV).ReadAll, vbCrLf)
Feldnamen = Split(Zeilen(0), Delim) 'Feldnamen auslesen und in Array übertragen
Felder = UBound(Feldnamen) 'Höchsten Arrayindex zwischenspeichern
For i = 1 To UBound(Zeilen) 'alle Datenzeilen durchgehen
Werte = Split(Zeilen(i), Delim) 'Array mit einzelnen Werten erzeugen
If UBound(Werte) >= Felder Then 'nur, wenn genug Werte vorhanden (Vorbeugung gegen Leerzeilen)
'Datei mit Header erzeugen
Set Datei = fso.CreateTextFile(Dateiname & Right(Nr, Stellen) & Typ)
Datei.WriteLine Header
Nr = Nr + 1 'Zähler für Dateinummer erhöhen
For j = 0 To Felder 'für jedes Feld ...
'... eine Zeile in die Datei schreiben
Datei.WriteLine "<FELD NAME=""" & Feldnamen(j) & """>" & Werte(j) & "</FELD>"
Next
Datei.Close 'Datei schließen
End If
Next
bastla