Zum Hauptinhalt springen
PulsarKit

XML in Excel umwandeln

Machen Sie aus einem XML-Feed oder einem Systemexport eine Tabelle. Das sich wiederholende Datensatzelement wird für Sie gefunden, und Attribute bekommen eigene Spalten.

Dateien hier ablegen

.xml, .rss, .xhtml, .txt · bis 300 MB

Weitere Einstellungen

In Excel umwandeln: So geht’s

  1. 1

    XML-Datei ablegen

    Feeds, Kataloge und Systemexporte werden lokal gelesen. Angenommen werden RSS, einfaches XML und XHTML.

  2. 2

    Erkanntes Datensatzelement bestätigen

    Der am häufigsten wiederholte Pfad wird zur Zeile. Ändern Sie ihn, wenn Ihre Datei die Datensätze an einer ungewöhnlichen Stelle verschachtelt.

  3. 3

    Umwandeln und XLSX herunterladen

    Sie erhalten eine Zeile je Datensatz und eine fixierte Kopfzeile, bereit zum Filtern und Sortieren.

Was als Zeile zählt

XML kennt keine Tabellen, deshalb lautet die erste echte Frage, welches Element ein Datensatz ist. Der Dokumentbaum wird durchlaufen, und für jeden Knoten wird gezählt, wie viele gleichnamige Kinder er hat. Der Pfad mit den meisten Wiederholungen gewinnt; bei Gleichstand geht der Zuschlag an den tieferen Pfad, weil er genauer ist: rss.channel.item ist eine nützlichere Antwort als rss.channel. Bei Feeds und Katalogen liegt diese Heuristik fast immer richtig, doch sie bleibt eine Heuristik. Deshalb ist der Pfad ein bearbeitbares Feld und keine versteckte Entscheidung. Ein 1C-Export, in dem sich sowohl Document als auch TableRow wiederholen, ist genau der Fall, in dem nur Sie wissen, welches der beiden Sie gemeint haben.

Attribute, Namespaces und Verschachtelung

Ein Attribut trägt Daten genau wie ein Element. Deshalb wird id="7" zu einer Spalte namens @id und ein verschachteltes currency="EUR" zu sum.@currency. Sie können das Präfix ändern oder Attribute ganz weglassen. Namespace-Präfixe werden standardmäßig entfernt, sodass dc:title in einer Spalte namens title landet – das wollen fast alle, wenn sie das Tabellenblatt öffnen. Schalten Sie das aus, bleibt der Name mit Präfix erhalten. Verschachtelte Elemente werden bis zur erlaubten Tiefe zu Spalten mit Punktnamen, und alles Tiefere wird als kompaktes JSON gespeichert, statt das Tabellenblatt in die Breite zu sprengen.

Entity-Deklarationen werden abgelehnt, nicht expandiert

Eine XML-Datei darf in einem DOCTYPE eigene Entities deklarieren. Durch deren Expansion erschöpft der Billion-Laughs-Angriff den Arbeitsspeicher, und über XXE werden Dateien von einem Server ausgelesen. Eine nicht vertrauenswürdige Entity lässt sich nicht sicher expandieren, und für die Umwandlung in eine Tabelle gibt es keinen guten Grund, es zu versuchen. Ein Dokument mit einer ENTITY-Deklaration wird daher vor dem Einlesen abgelehnt, mit einer Meldung, die genau sagt, warum. Entfernen Sie den DOCTYPE, dann wird der Rest der Datei normal umgewandelt.

Hier eingelesen, nicht auf einem Server

Decodieren, Validieren und Umwandeln geschehen in diesem Browser-Tab, mit einem eigens dafür geschriebenen Parser. Nichts wird hochgeladen, und weil externe Entities nicht expandiert werden, kann auch kein Teil der Datei nach außen Verbindung aufnehmen.

Häufige Fragen

Wie wird das sich wiederholende Element gewählt?

Im ganzen Dokument werden gleichnamige Geschwisterelemente gezählt, und der Pfad mit den meisten wird genommen; bei Gleichstand hat der tiefere Pfad Vorrang. Der gewählte Pfad wird angezeigt und lässt sich durch jeden Pfad ersetzen, den Sie eintippen.

Wo landen die Attribute?

In eigenen Spalten, standardmäßig mit dem Präfix @: @id für ein Attribut am Datensatz und sum.@currency für eines an einem verschachtelten Element. Sie können das Präfix ändern oder Attribute ganz überspringen.

Was passiert mit verschachtelten Elementen?

Sie werden bis zur eingestellten Tiefengrenze zu Spalten mit Punktnamen wie order.customer.city. Alles Tiefere wird als kompakter JSON-String in eine einzige Zelle geschrieben, statt sich auf weitere Spalten auszubreiten.

Und was ist mit Namespaces?

Präfixe wie dc: werden standardmäßig entfernt, aus dc:title wird also eine Spalte namens title. Verwenden in Ihrer Datei zwei Namespaces tatsächlich denselben lokalen Namen, schalten Sie das Entfernen aus, um sie getrennt zu halten.

Funktioniert RSS?

Ja, und das ist der Fall, den die Erkennung am besten beherrscht: rss.channel.item wird automatisch gefunden, und jeder Feed-Eintrag ergibt eine Zeile mit title, link und pubDate als Spalten.

Wo liegt die Zeilengrenze?

Bei 1.048.576 Zeilen – das ist eine Grenze des XLSX-Formats selbst. Ein größerer Feed wird abgelehnt, mit einem Link zu „XML in CSV umwandeln“, wo es keine solche Obergrenze gibt.

Wird meine Datei hochgeladen?

Nein. Die Datei wird in Ihrem Browser decodiert, eingelesen und umgewandelt. Deklarierte Entities werden von vornherein abgelehnt statt expandiert, sodass auch nichts im Dokument eine Netzwerkanfrage auslösen kann.

Ähnliche Tools