100 % local — seus dados nunca saem do seu navegador

XML para YAML — legível num passo

Converta XML em YAML. A árvore vira indentação em vez de tags, que costuma ser a razão pela qual você queria tirá-la do XML.

Instantâneo Privado Zero cookies
Indentação

Entrada XML

Saída YAML

O que esta ferramenta faz

O documento vira um mapeamento YAML, com a mesma forma que o XML para JSON produz: atributos como chaves com prefixo @_, texto sob #text quando um elemento carrega os dois, e uma sequência quando um elemento se repete.

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

Por que essas chaves levam aspas

Dois dos caracteres que esse mapeamento produz são reservados no YAML.

@ não pode iniciar um escalar simples — a especificação o reserva —, então @_id precisa de aspas. # abre um comentário: #text escrito puro faria o resto da linha sumir. As aspas não são enfeite; são a única maneira de escrevê-los.

Por que alguns valores também

O YAML tem duas versões de uso amplo, e elas discordam sobre o que significa uma palavra pura.

escrito puroYAML 1.2 lêYAML 1.1 lê
NOa string NOfalso
yesa string yesverdadeiro
12:30a string 12:30750 (sexagesimal)
2026-01-01a stringum timestamp

YAML 1.2 é o que a maioria das bibliotecas JavaScript escreve. YAML 1.1 é o que o PyYAML implementa, e é com PyYAML que uma parcela enorme do mundo realmente lê YAML.

Um código de país NO escrito puro vira False em Python. Esse é o «problema norueguês», e nada no arquivo o sinaliza: o documento continua válido, só deixa de querer dizer a mesma coisa.

Esta ferramenta coloca aspas exatamente nesses escalares ambíguos, e só neles. Um booleano de verdade continua true, um null de verdade continua null, uma palavra comum continua pura. A saída é YAML 1.2 válido, e os dois leitores encontram nela os mesmos valores.

Texto com várias linhas

Um texto com quebras de linha vira um escalar de bloco:

a: |-
  primeira linha
  segunda linha

É a forma legível que o YAML prevê justamente para isso, e ela vai e volta sem escapes.

Privado por padrão

Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.

Perguntas frequentes

Por que algumas chaves ficam entre aspas e outras não?
Porque o YAML reserva dois caracteres que esta conversão produz. `@` não pode iniciar um escalar simples — a especificação o reserva para uso futuro —, então uma chave de atributo `@_id` precisa de aspas. `#` abre um comentário, então `#text` também. Todo o resto é escrito sem aspas.
Por que meu NO está entre aspas? Eu o queria sem elas.
Porque sem aspas ele deixaria de ser a string `NO` para boa parte dos leitores. O YAML 1.1, que o PyYAML implementa, lê `NO` puro como o booleano falso: o famoso «problema norueguês». As aspas custam dois caracteres e mantêm o código de país como código de país.
Como obtenho uma lista quando só há um elemento?
Você não obtém, só com o documento: um `<item>` e uma lista de um `<item>` se escrevem igual em XML, e só um esquema os distingue. Um elemento dá um mapeamento; dois ou mais, uma sequência. Normalize do lado consumidor se ele precisa de lista nos dois casos.

Conversores relacionados