100 % locale — i tuoi dati non lasciano mai il tuo browser

XML in YAML — leggibile in un passo

Converti XML in YAML. L’albero diventa indentazione invece che tag, che di solito è il motivo per cui volevi tirarlo fuori dall’XML.

Istantaneo Privato Zero cookie
Indentazione
Inverti: YAML → XML

Input XML

Output YAML

Che cosa fa questo strumento

Il documento diventa una mappa YAML, della stessa forma prodotta da XML verso JSON: attributi come chiavi con prefisso @_, testo sotto #text quando un elemento porta entrambi, una sequenza quando un elemento si ripete.

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

Perché quelle chiavi sono tra virgolette

Due dei caratteri prodotti da questa corrispondenza sono riservati in YAML.

@ non può iniziare uno scalare semplice — la specifica lo riserva — quindi @_id va citato. # apre un commento: #text scritto nudo farebbe sparire il resto della riga. Le virgolette non sono un ornamento: sono l’unico modo di scriverli.

Perché anche certi valori

YAML ha due versioni molto diffuse, e non concordano sul significato di una parola nuda.

scritto nudoYAML 1.2 leggeYAML 1.1 legge
NOla stringa NOfalso
yesla stringa yesvero
12:30la stringa 12:30750 (sessagesimale)
2026-01-01la stringaun timestamp

YAML 1.2 è ciò che scrivono quasi tutte le librerie JavaScript. YAML 1.1 è ciò che implementa PyYAML, e con PyYAML una parte enorme del mondo legge davvero YAML.

Un codice paese NO scritto nudo diventa quindi False in Python. È il «problema norvegese», e nulla nel file lo segnala: il documento resta valido, semplicemente smette di voler dire la stessa cosa.

Questo strumento mette le virgolette esattamente attorno a quegli scalari ambigui, e a nient’altro. Un booleano vero resta true, un null vero resta null, una parola ordinaria resta nuda. L’uscita è YAML 1.2 valido, ed entrambi i lettori vi ritrovano gli stessi valori.

Testo su più righe

Un testo con ritorni a capo diventa uno scalare di blocco:

a: |-
  prima riga
  seconda riga

È la forma leggibile che YAML prevede proprio per questo, e fa andata e ritorno senza escape.

Privato per progettazione

Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.

Domande frequenti

Perché alcune chiavi sono tra virgolette e altre no?
Perché YAML riserva due caratteri che questa conversione produce. `@` non può iniziare uno scalare semplice — la specifica lo riserva per usi futuri — quindi una chiave di attributo `@_id` va tra virgolette. `#` apre un commento, e così anche `#text`. Tutto il resto si scrive nudo.
Perché il mio NO è tra virgolette? Lo volevo nudo.
Perché nudo smetterebbe di essere la stringa `NO` per buona parte dei lettori. YAML 1.1, che PyYAML implementa, legge `NO` nudo come il booleano falso: il noto «problema norvegese». Le virgolette costano due caratteri e lasciano al codice paese il suo ruolo di codice paese.
Come ottengo una lista quando c’è un solo elemento?
Dal solo documento non puoi: un `<item>` e una lista di un `<item>` si scrivono identici in XML, e solo uno schema li distingue. Un elemento dà una mappa, due o più danno una sequenza. Normalizza dal lato consumatore se gli serve una lista in entrambi i casi.

Convertitori correlati