100 % lokal — Ihre Daten verlassen nie Ihren Browser

XML in YAML — in einem Schritt lesbar

XML in YAML umwandeln. Der Baum wird zu Einrückung statt zu Tags — meist genau der Grund, aus dem man ihn aus dem XML herausholen wollte.

Sofort Privat Null Cookies
Einrückung

XML-Eingabe

YAML-Ausgabe

Was dieses Werkzeug tut

Das Dokument wird eine YAML-Zuordnung, in derselben Form, die XML nach JSON erzeugt: Attribute als Schlüssel mit @_-Präfix, Text unter #text, wenn ein Element beides trägt, eine Sequenz, wenn ein Element sich wiederholt.

<user id="1"><name>Ada</name></user>
user:
  name: Ada
  "@_id": "1"

Warum diese Schlüssel zitiert werden

Zwei der Zeichen, die diese Abbildung erzeugt, sind in YAML reserviert.

@ darf keinen einfachen Skalar beginnen — die Spezifikation behält es sich vor —, @_id muss also zitiert werden. # eröffnet einen Kommentar: #text blank geschrieben ließe den Rest der Zeile verschwinden. Die Anführungszeichen sind keine Zierde, sondern die einzige Art, sie zu schreiben.

Warum auch manche Werte

YAML hat zwei weit verbreitete Versionen, und sie sind sich nicht einig, was ein blankes Wort bedeutet.

blank geschriebenYAML 1.2 liestYAML 1.1 liest
NOdie Zeichenkette NOfalsch
yesdie Zeichenkette yeswahr
12:30die Zeichenkette 12:30750 (sexagesimal)
2026-01-01die Zeichenketteeinen Zeitstempel

YAML 1.2 schreiben die meisten JavaScript-Bibliotheken. YAML 1.1 setzt PyYAML um, und mit PyYAML liest ein sehr großer Teil der Welt tatsächlich YAML.

Ein blank geschriebener Ländercode NO wird in Python also zu False. Das ist das „Norwegen-Problem“, und nichts in der Datei zeigt es an: das Dokument bleibt so oder so gültig, es bedeutet nur nicht mehr dasselbe.

Dieses Werkzeug zitiert genau diese mehrdeutigen Skalare und sonst nichts. Ein echter Wahrheitswert bleibt true, ein echtes null bleibt null, ein gewöhnliches Wort bleibt blank. Die Ausgabe ist gültiges YAML 1.2, und beide Leser finden dieselben Werte darin.

Mehrzeiliger Text

Text mit Zeilenumbrüchen wird ein Block-Skalar:

a: |-
  erste Zeile
  zweite Zeile

Das ist die lesbare Form, die YAML genau dafür vorsieht, und sie geht ohne Escapes hin und zurück.

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

Warum stehen manche Schlüssel in Anführungszeichen und andere nicht?
Weil YAML zwei Zeichen reserviert, die diese Umwandlung erzeugt. `@` darf keinen einfachen Skalar beginnen — die Spezifikation behält es sich vor —, ein Attributschlüssel `@_id` muss also zitiert werden. `#` beginnt einen Kommentar, `#text` also ebenfalls. Alles andere wird schlicht geschrieben.
Warum steht mein NO in Anführungszeichen? Ich wollte es blank.
Weil es blank für einen großen Teil der Leser aufhörte, die Zeichenkette `NO` zu sein. YAML 1.1, das PyYAML umsetzt, liest blankes `NO` als den Wahrheitswert falsch — das bekannte „Norwegen-Problem“. Die Anführungszeichen kosten zwei Zeichen und lassen den Ländercode einen Ländercode bleiben.
Wie bekomme ich eine Liste, wenn es nur ein Element gibt?
Aus dem Dokument allein gar nicht: ein `<item>` und eine Liste mit einem `<item>` werden in XML identisch geschrieben, und nur ein Schema unterscheidet sie. Ein Element ergibt eine Zuordnung, zwei oder mehr eine Sequenz. Normalisieren Sie auf der verbrauchenden Seite, wenn dort in beiden Fällen eine Liste gebraucht wird.

Ähnliche Konverter