aus CSV datei in XML wandeln

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • aus CSV datei in XML wandeln

    Hallo zusammen,

    ich habe eine CSV-datei die so aussieht.

    Quellcode

    1. platz;name;klasse;gender;punkte
    2. z.b.
    3. 1;tom meier;ak12;männlich;1403
    4. 2;tommir;ak12;männlich;1303
    5. 3;heinzi;ak12;männlich;1203
    6. 1;helga;ak12;weiblich;1403
    7. 1;uter;ak12;weiblich;1103




    Und ich möchte folgendes XML da herausbekommen, da ich es für eine Anwendung weiterverarbeite.

    Quellcode

    1. <wettkamp platz="1" name="tom meier" alterskl="ak12" gender="männlich" punkte="1403" />


    So sollen die zeilen dann untereinander stehen.

    Ich würde mich über hilfe freuen.
  • Wie geschrieben gibt es eine Menge Klassen und auch fertige Tools.

    [google]XML CSV Converter[/google]

    z.B
    creativyst.com/cgi-bin/Prod/15/eg/csv2xml.pl



    Wenn du etwas in deine Anwendung implementieren möchtest, müsstest du in das entsprechende Forum gehen (abhängig von der Programmiersprache die du verwenden möchtest)
  • thebrain schrieb:

    Der Converter macht leider nicht das was ich brauche.

    wenn die vorhandenen Lösungen die du via google gefunden hast nicht ausreichen/funktionieren, kommst du wohl nicht drumherum es selber zu programmieren.
    Für PHP werfe ich einfach mal das Stichwort simplexml in den Raum. Aber mehr Fachfragen bitte im jeweiligen Forum.
  • eine Lösung mit Ruby


    hier download

    Lösung unter Windows

    Quellcode

    1. require "rexml/document"
    2. require 'iconv'
    3. # File-Objekt erzeugen
    4. filexml = File.new( "make.xml","w" )
    5. # Variable für Erzeugung der XML-Datei zur Verfügung stellen
    6. doc = REXML::Document.new
    7. # XML-Decleration erzeugen und übergeben
    8. doc << REXML::XMLDecl.new(1.0, "ISO-8859-1", "no")
    9. # Root-Tag erzeugen und anhängen
    10. doc.add_element(REXML::Element.new("wettkampf"))
    11. doc.root.attributes["Lauf"] = 100
    12. File.open("wettkampf.cvs") { |file|
    13. file.each_line { |line|
    14. arr=line.split(";")
    15. e = REXML::Element.new( "Platz")
    16. # Für Variable Attribut erzeugen und anhängen
    17. e.attributes["Nummer"] = arr[0]
    18. e.attributes["Name"] = arr[1]
    19. e.attributes["Altersklasse"] = arr[2]
    20. e.attributes["Gender"] =Iconv.iconv('UTF-8','CP1252',arr[3])
    21. e.attributes["Punkte"] = arr[4]
    22. doc.root.add_element(e)
    23. }
    24. file.close
    25. }
    26. # Ausgabe auf Konsole
    27. doc.write( $stdout, 0 )
    28. # In Datei schreiben
    29. filexml << doc
    Alles anzeigen



    Quellcode

    1. <?xml version='1.0' encoding='ISO-8859-1' standalone='no'?>
    2. <wettkampf Lauf='100'>
    3. <Platz Name='tom meier' Gender='männlich' Nummer='1' Altersklasse='ak12' Punkte='1403'/>
    4. <Platz Name='tommir' Gender='männlich' Nummer='2' Altersklasse='ak12' Punkte='1303'/>
    5. <Platz Name='heinzi' Gender='männlich' Nummer='3' Altersklasse='ak12' Punkte='1203'/>
    6. <Platz Name='helga' Gender='weiblich' Nummer='1' Altersklasse='ak12' Punkte='1403'/>
    7. <Platz Name='uter' Gender='weiblich' Nummer='1' Altersklasse='ak12' Punkte='1103'/>
    8. </wettkampf>
    Helmut Hagemann
    Derjenige, der sagt: Das geht nicht, soll den nicht stören, der's gerade tut.