100 % lokal — Ihre Daten verlassen nie Ihren Browser

XML in CSV — eine Zeile je Element

Wiederholte XML-Elemente in Zeilen verwandeln. Die Namen der Kinder werden zu Spalten, bereit für die Tabellenkalkulation oder ein Skript.

Sofort Privat Null Cookies
Trennzeichen

XML-Eingabe

CSV-Ausgabe

Was dieses Werkzeug tut

Es findet das wiederholte Element und macht aus jedem Vorkommen eine Zeile.

<bestellungen>
  <bestellung id="1"><kunde>Ada</kunde><summe>42</summe></bestellung>
  <bestellung id="2"><kunde>Alan</kunde><summe>17</summe></bestellung>
</bestellungen>
kunde,summe,id
Ada,42,1
Alan,17,2

Hüllen mit einem einzigen Schlüssel werden durchlaufen: <bestellungen><bestellung>… braucht keine Einstellung. Eine Hülle mit eigenem Attribut — <bestellungen anzahl="2"> — ebenfalls: dieses Attribut beschreibt die Sammlung, nicht eine Zeile, und wird daher keine Spalte. Ein Attribut an einer Zeile schon.

Attribute sind Spalten

Ein Bezeichner, der in einem Attribut wohnt, sind Daten wie alle anderen. @_id wird zur Spalte id.

Das Präfix bleibt in genau einem Fall: wenn ein Kindelement diesen Namen schon trägt. <row id="1"><id>x</id></row> ergibt zwei Spalten, id und @_id, denn es sind zwei verschiedene Dinge, und sie zu verschmelzen ließe eines verschwinden. Ein Schalter entfernt Attribute ganz, wenn Ihre Tabelle nur aus den Elementen kommen soll.

Eine Zeile ist eine Tabelle

Ein Export mit einem einzigen Datensatz wandelt wie jeder andere. Das ist erwähnenswert, weil es früher nicht so war: XML nach JSON gibt ein Objekt statt eines Arrays zurück, wenn das Element sich nicht wiederholt, und das Array zu verlangen wies ein völlig gewöhnliches Dokument ab.

Ein Wurzelelement, das nur Text enthält, wird weiterhin abgewiesen: ein Wert ist keine Tabelle, und so zu tun als ob hülfe niemandem.

Zeilen, die einander nicht gleichen

Die Kopfzeile ist die Vereinigung alles Gesehenen, in der Reihenfolge des ersten Auftretens. Einer Zeile, der eine Spalte fehlt, wird eine leere Zelle gegeben:

<r><row><a>1</a></row><row><a>2</a><b>3</b></row></r>
a,b
1,
2,3

Ein unregelmäßiger Export ist normal. Die überzählige Spalte zu verwerfen, oder die Zeile, der sie fehlt, hieße Daten der Ordnung zu opfern.

Was eine Zelle nicht fassen kann

Eine Zelle trägt einen Wert. Enthält ein Element einen Teilbaum, wird dieser als JSON in die Zelle geschrieben, statt über erfundene Spaltennamen verteilt zu werden. Das ist hässlich und ehrlich: nichts geht verloren, und Sie sehen genau, was da war.

Datenschutz ab Werk

Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.

Häufige Fragen

Wo ist mein id-Attribut geblieben? Früher verschwand es.
Es ist jetzt eine Spalte. `<row id="1">` ergibt eine `id`-Spalte neben denen aus den Kindelementen: ein Bezeichner in einem Attribut sind ebenso Daten, und ihn stillschweigend zu verlieren war ein echter Mangel dieses Werkzeugs, gefunden beim Schreiben dieser Seite. Heißt ein Kindelement bereits `id`, behält das Attribut sein `@_`-Präfix, damit die beiden Spalten getrennt bleiben.
Warum erscheint ein verschachteltes Element als JSON in der Zelle?
Weil eine CSV-Zelle einen Wert trägt und Ihr Element einen Teilbaum. Ihn in `eltern.kind`-Spalten zu plätten erfände eine Namenskonvention, der Ihr Konsument nicht zugestimmt hat; JSON in der Zelle ist wenigstens eindeutig und umkehrbar. Plätten Sie vor der Umwandlung, wenn Sie echte Spalten wollen.
Meine Zeilen haben nicht alle dieselben Kinder. Was passiert?
Die Kopfzeile ist die Vereinigung aller gesehenen Elemente und Attribute, in der Reihenfolge des ersten Auftretens, und einer Zeile, der eines fehlt, wird eine leere Zelle gegeben. Nichts wird wegen Unregelmäßigkeit verworfen: ein Export, in dem nur manche Datensätze einen zweiten Vornamen tragen, ist normal, kein Fehler.

Ähnliche Konverter