nulpen
Goto Top

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

Content-Key: 156966

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

Printed on: April 24, 2024 at 06:04 o'clock

Member: bastla
bastla Dec 14, 2010 at 14:13:59 (UTC)
Goto Top
Hallo nulpen!

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
Grüße
bastla
Member: nulpen
nulpen Dec 14, 2010 at 20:47:38 (UTC)
Goto Top
Hey bastla,

GANZ KLASSE !!!!!

So kann ich es verwenden und packe den Rest hinzu.

Super , genau das was ich brauche.

Daumen hoch für die schnelle Antwort......

Ralf