ToolDeck

CSV to XML

CSV-Daten in das XML-Format konvertieren

Beispiel ausprobieren

CSV-Eingabe

XML-Ausgabe

Läuft lokal · Sicher zum Einfügen von Secrets
XML-Ausgabe erscheint hier…

Was ist CSV-zu-XML-Konvertierung?

Die CSV-zu-XML-Konvertierung wandelt kommagetrennte Werte in XML-Dokumente (Extensible Markup Language) um. Jede Zeile der CSV-Datei wird zu einem XML-Element, und jeder Spaltenname wird zum Tag-Namen eines untergeordneten Elements. Das Ergebnis ist ein hierarchisches, selbstbeschreibendes Dokument, das Systeme gegen ein Schema (XSD oder DTD) validieren und mit Standard-XML-Werkzeugen wie XSLT, XPath sowie SAX/DOM-Parsern verarbeiten können.

XML ist seit der Veröffentlichung der XML 1.0-Spezifikation durch das W3C im Jahr 1998 ein Standard für den Datenaustausch. Obwohl JSON XML in vielen Web-APIs abgelöst hat, bleibt XML das erforderliche Format für SOAP-Webdienste, RSS/Atom-Feeds, SVG-Grafiken, Office Open XML-Dokumente (.docx, .xlsx), Android-Ressourcendateien, Maven/Gradle-Build-Konfigurationen sowie regulierte Branchen wie das Gesundheitswesen (HL7 CDA), Finanzen (FpML, XBRL) und öffentliche Verwaltung (NIEM). Wenn die Quelldaten aus einer Tabellenkalkulation oder einem Datenbankexport stammen, ist die CSV-zu-XML-Konvertierung der Weg, sie in diese Systeme zu überführen.

Ein korrekter CSV-zu-XML-Konverter muss RFC 4180-Sonderfälle behandeln: Felder in Anführungszeichen mit Kommas oder Zeilenumbrüchen, maskierte doppelte Anführungszeichen und unterschiedliche Trennzeichen. Auf der XML-Seite muss er die fünf vordefinierten XML-Entities maskieren (& < > " '), aus Spaltenköpfen gültige Elementnamen erzeugen (Leerzeichen und Sonderzeichen ersetzen) und eine wohlgeformte Ausgabe mit einer korrekten XML-Deklaration und konsistenter Kodierung liefern.

Warum einen CSV-zu-XML-Konverter verwenden?

XML manuell aus Tabellendaten zu schreiben ist langsam und fehleranfällig. Ein fehlendes schließendes Tag oder ein nicht maskiertes &-Zeichen erzeugt ungültiges XML, das nachgelagerte Parser zum Absturz bringt. Dieser Konverter übernimmt Parsing, Maskierung und Elementerzeugung in einem einzigen Schritt.

Sofortige Konvertierung im Browser
CSV einfügen und wohlgeformtes XML mit einer korrekten Deklaration, einem Wurzelelement und verschachtelten Kindelementen erhalten. Keine Kommandozeilen-Tools oder Bibliotheken erforderlich.
🔒
Daten bleiben privat
Die gesamte Konvertierung läuft lokal im Browser per JavaScript. CSV-Daten werden nie auf einen Server übertragen, nie protokolliert und nirgendwo außerhalb des eigenen Rechners gespeichert.
🎯
Gültiges, wohlgeformtes XML erzeugen
Die Ausgabe maskiert XML-Entities, bereinigt Spaltenköpfe zu gültigen Elementnamen und erzeugt korrekt verschachteltes Markup, das jeden XML-Validator oder Linter besteht.
📋
Jeden CSV-Dialekt verarbeiten
Erkennt automatisch Kommas, Semikolons, Tabulatoren und Pipes als Trennzeichen. Unterstützt RFC 4180-Quoting-Regeln einschließlich maskierter Anführungszeichen, mehrzeiliger Felder und UTF-8-Dateien mit BOM-Präfix.

Anwendungsfälle für CSV zu XML

SOAP- und Legacy-API-Integration
Viele Unternehmenssysteme verwenden noch SOAP-Webdienste, die XML-Anfragedaten erfordern. CSV-Datenexporte in XML-Payloads umwandeln, die dem WSDL-Schema des Dienstes entsprechen, bevor Anfragen gesendet werden.
Build-Konfigurationsdateien erstellen
Maven pom.xml-Abhängigkeitslisten, Android-Ressourcendateien oder Spring-Bean-Definitionen aus einer Tabelle mit Abhängigkeiten, Strings oder Konfigurationseinträgen generieren. XML-Konfigurationen aus einer einzigen CSV-Quelle stapelweise erzeugen.
ETL-Datenpipelines
CSV-Exporte aus Datenbanken oder Analysetools in XML-basierte ETL-Pipelines einspeisen. Tools wie Apache NiFi, Talend und SSIS akzeptieren XML-Eingaben für Transformations-Workflows, die an jeder Stufe eine Schema-Validierung erfordern.
Regulatorische und Compliance-Berichte
Branchen wie Gesundheitswesen (HL7 CDA), Finanzen (XBRL, FpML) und öffentliche Verwaltung (NIEM) schreiben XML-formatierte Einreichungen vor. Tabellarische Compliance-Daten vor der Übermittlung in die erforderliche XML-Struktur umwandeln.
RSS- und Atom-Feed-Generierung
Eine CSV-Liste von Artikeln, Titeln und Datumsangaben in einen RSS 2.0- oder Atom-Feed umwandeln. Content-Management-Workflows beginnen häufig mit einer Tabelle von Beiträgen, die als Syndication-Feed veröffentlicht werden sollen.
XML-Grundlagen vermitteln
Studierende, die XML erlernen, können vertraute CSV-Daten einfügen und die resultierende Elementhierarchie, Verschachtelung und Entity-Maskierung betrachten. Der Vergleich von Eingabe und Ausgabe macht abstrakte Konzepte wie Wohlgeformtheit und Gültigkeit greifbar.

Referenz: CSV-zu-XML-Zuordnung

Das Verständnis, wie jeder Teil einer CSV-Datei auf die XML-Struktur abgebildet wird, hilft dabei, das Ausgabeformat vorherzusagen und Daten vor der Konvertierung anzupassen.

CSV-KonzeptXML-ÄquivalentDetails
CSV fileXML documentThe entire file maps to a root element containing all records
Header rowElement tag namesEach column header becomes the tag name for child elements
Data row<row> elementEach row becomes a repeating child element of the root
Cell valueText nodeCell content becomes the text inside the corresponding tag
Empty cellEmpty element or omittedCan be rendered as <field/> or excluded from output
Comma delimiterXML structureDelimiters are replaced by element nesting and closing tags

CSV vs. XML

CSV ist ein flaches, trennzeichenbasiertes Format ohne eingebautes Schema oder Datentypen. XML ist eine hierarchische, selbstbeschreibende Auszeichnungssprache mit Unterstützung für Schemas, Namespaces und komplexe Verschachtelung. Die Wahl hängt von den Anforderungen des nachgelagerten Systems ab.

CSV
Klartext, ein Datensatz pro Zeile. Keine Datentypen: Jeder Wert ist eine Zeichenkette. Keine Hierarchie oder Verschachtelung. Geringe Dateigröße. Von Tabellenkalkulationen, Datenbanken und Skriptsprachen universell unterstützt. Durch RFC 4180 definiert. Am besten geeignet für einfache tabellarische Datenübertragung zwischen Systemen, die beide das Spaltenlayout kennen.
XML
Hierarchisches Markup mit öffnenden und schließenden Tags. Unterstützt Attribute, Namespaces, gemischte Inhalte und CDATA-Abschnitte. Kann gegen XSD- oder DTD-Schemas validiert werden. Verarbeitung durch XSLT, XPath, SAX und DOM-Parser. Größere Dateigröße als CSV durch Tag-Overhead. Erforderlich von SOAP-APIs, Office Open XML, RSS/Atom und vielen regulierten Branchen.

Code-Beispiele

Nachfolgend funktionierende Beispiele zur CSV-zu-XML-Konvertierung in verschiedenen Sprachen. Jedes Beispiel liest die CSV-Kopfzeile als Elementnamen, umschließt jede Datenzeile mit einem Container-Element und maskiert XML-Entities im Zellinhalt.

JavaScript (browser / Node.js)
// CSV string → XML with proper escaping
const csv = `name,age,city
Alice,30,Berlin
Bob,25,Tokyo`

function csvToXml(csv, rootTag = 'data', rowTag = 'row') {
  const rows = csv.trim().split('\n').map(r => r.split(','))
  const [headers, ...data] = rows
  const xmlRows = data.map(row => {
    const fields = headers.map((h, i) => {
      const val = (row[i] || '').replace(/&/g, '&amp;')
        .replace(/</g, '&lt;').replace(/>/g, '&gt;')
      return `    <${h}>${val}</${h}>`
    }).join('\n')
    return `  <${rowTag}>\n${fields}\n  </${rowTag}>`
  }).join('\n')
  return `<?xml version="1.0" encoding="UTF-8"?>\n<${rootTag}>\n${xmlRows}\n</${rootTag}>`
}

console.log(csvToXml(csv))
// → <?xml version="1.0" encoding="UTF-8"?>
// → <data><row><name>Alice</name><age>30</age>...</row>...</data>
Python
import csv, io
from xml.etree.ElementTree import Element, SubElement, tostring
from xml.dom.minidom import parseString

csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""

reader = csv.DictReader(io.StringIO(csv_string))
root = Element('data')

for row in reader:
    row_el = SubElement(root, 'row')
    for key, value in row.items():
        child = SubElement(row_el, key)
        child.text = value

# Pretty-print with declaration
raw = tostring(root, encoding='unicode')
pretty = parseString(raw).toprettyxml(indent='  ')
print(pretty)
# → <?xml version="1.0" ?>
# → <data>
# →   <row>
# →     <name>Alice</name>
# →     <age>30</age>
# →     <city>Berlin</city>
# →   </row>
# →   ...
# → </data>
Go
package main

import (
	"encoding/csv"
	"encoding/xml"
	"fmt"
	"os"
	"strings"
)

type Field struct {
	XMLName xml.Name
	Value   string `xml:",chardata"`
}

type Row struct {
	XMLName xml.Name `xml:"row"`
	Fields  []Field
}

type Data struct {
	XMLName xml.Name `xml:"data"`
	Rows    []Row
}

func main() {
	input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
	r := csv.NewReader(strings.NewReader(input))
	records, _ := r.ReadAll()
	headers := records[0]

	var data Data
	for _, rec := range records[1:] {
		row := Row{}
		for i, h := range headers {
			row.Fields = append(row.Fields, Field{
				XMLName: xml.Name{Local: h},
				Value:   rec[i],
			})
		}
		data.Rows = append(data.Rows, row)
	}

	out, _ := xml.MarshalIndent(data, "", "  ")
	fmt.Println(xml.Header + string(out))
	// → <?xml version="1.0" encoding="UTF-8"?>
	// → <data><row><name>Alice</name>...</row>...</data>
}
CLI (csvkit / xmlstarlet)
# Using Python's csv and xml modules via one-liner
python3 -c "
import csv, sys
from xml.etree.ElementTree import Element, SubElement, tostring
from xml.dom.minidom import parseString

reader = csv.DictReader(sys.stdin)
root = Element('data')
for row in reader:
    r = SubElement(root, 'row')
    for k, v in row.items():
        SubElement(r, k).text = v
print(parseString(tostring(root, encoding='unicode')).toprettyxml(indent='  '))
" < data.csv

# Using Miller (mlr) — a dedicated CSV/JSON/XML tool
mlr --icsv --oxml cat data.csv

Häufig gestellte Fragen

Wie funktioniert die CSV-zu-XML-Konvertierung?
Der Konverter liest die erste Zeile der CSV-Datei als Spaltenköpfe. Jede weitere Zeile wird zu einem XML-Element, und jeder Zellwert wird in ein Kindelement eingeschlossen, das nach dem entsprechenden Spaltenkopf benannt ist. Das Ergebnis ist ein wohlgeformtes XML-Dokument mit einem Wurzelelement, das je ein Kindelement pro Datenzeile enthält.
Was passiert mit Sonderzeichen wie & und < in den CSV-Daten?
Der Konverter maskiert alle fünf vordefinierten XML-Entities: & wird zu &amp;, < wird zu &lt;, > wird zu &gt;, " wird zu &quot; und ' wird zu &apos;. Das erzeugt gültiges XML, das Parser nicht abbricht und keine Wohlgeformtheitsfehler verursacht.
Kann ich benutzerdefinierte Tag-Namen für das Wurzel- und das Zeilenelement festlegen?
Ja. Das Tool erlaubt es, den Namen des Wurzelelements (Standard: "data") und den Namen des Zeilenelements (Standard: "row") festzulegen. Die Spaltenköpfe aus der CSV-Datei werden immer zu den Kindelementnamen. Enthält ein Spaltenkopf Leerzeichen oder in XML-Elementnamen ungültige Zeichen, bereinigt das Tool diese automatisch.
Was ist der Unterschied zwischen CSV zu XML und CSV zu JSON?
CSV zu XML erzeugt ein hierarchisches Markup-Dokument mit öffnenden/schließenden Tags, einer XML-Deklaration und Unterstützung für Schema-Validierung (XSD/DTD). CSV zu JSON erzeugt ein schlankes Array von Schlüssel-Wert-Objekten. XML verwenden, wenn das Zielsystem es erfordert (SOAP-APIs, regulierte Formate, RSS-Feeds). JSON für REST-APIs, JavaScript-Frontends und NoSQL-Datenbanken.
Wie validiere ich die erzeugte XML-Ausgabe?
Die Ausgabe in einen XML-Validator einfügen, um die Wohlgeformtheit zu prüfen (korrekte Verschachtelung, korrekte Entity-Maskierung, übereinstimmende Tags). Für die Schema-Validierung eine XSD-Datei bereitstellen und ein Tool wie xmllint, Xerces oder einen Online-XSD-Validator verwenden. Das von diesem Tool erzeugte XML ist stets wohlgeformt, die Schema-Gültigkeit hängt jedoch davon ab, ob die Struktur dem Zielschema entspricht.
Verarbeitet der Konverter große CSV-Dateien?
Das Tool läuft im Browser, daher hängt die Leistung vom verfügbaren Arbeitsspeicher ab. Dateien bis zu einigen Megabyte (Zehntausende von Zeilen) werden auf moderner Hardware problemlos konvertiert. Für sehr große Dateien (100 MB+) empfiehlt sich ein Kommandozeilen-Tool wie Pythons csv- und xml.etree-Module oder Gos encoding/csv- und encoding/xml-Pakete, die Daten als Stream verarbeiten, ohne alles in den Speicher zu laden.
Ist das erzeugte XML mit XSLT-Transformationen kompatibel?
Ja. Die Ausgabe ist standardkonformes, wohlgeformtes XML mit einer Deklaration und einer konsistenten Elementstruktur. Jedes XSLT-Stylesheet lässt sich anwenden, um es in HTML, ein anderes XML-Schema oder Klartext umzuwandeln. Die vorhersehbare Struktur (Wurzel > Zeile > Feldelemente) macht das Schreiben von XPath-Selektoren und XSLT-Templates unkompliziert.