Formatador XML
Cole XML e ele se organiza — texto e atributos permanecem intactos.
XML formatado
Como usar
- Cole seu XML na caixa — ele é formatado enquanto você digita, sem botão para clicar.
- Escolha Formatar ou Minificar e 2 ou 4 espaços de indentação; o resultado é atualizado imediatamente.
- Se a estrutura estiver quebrada, a mensagem indica a linha, a coluna e o elemento. Copie o resultado ou baixe-o como arquivo .xml.
Exemplo
Entrada
<pedido id="A-1042"><cliente><nome>Ana Clara</nome><email>ana@exemplo.com.br</email></cliente><itens><item sku="X-1" qtd="2">Engrenagem da máquina analítica</item><item sku="X-2" qtd="1">Conjunto de cartões perfurados</item></itens></pedido>
Formatado
<pedido id="A-1042"> <cliente> <nome>Ana Clara</nome> <email>ana@exemplo.com.br</email> </cliente> <itens> <item sku="X-1" qtd="2">Engrenagem da máquina analítica</item> <item sku="X-2" qtd="1">Conjunto de cartões perfurados</item> </itens> </pedido>
Apenas as regras padrão: um elemento por linha, dois espaços por nível. A ordem dos atributos, as aspas e os valores ficam intactos, assim como o texto dentro de <nome>.
Regras, limites e problemas conhecidos
- Apenas verificação de estrutura: pareamento de tags, aspas/duplicação/separação de atributos, nomes de elementos e atributos, sintaxe de entidades. Sem validação DTD ou XSD, sem expansão de entidades, sem verificação de vinculação de prefixos de namespace.
- Apenas espaços estruturais são reescritos — o espaço entre atributos e o espaço que compõe um elemento sem texto. Ordem de atributos, estilo de aspas, valores, entidades, comentários, CDATA e o subconjunto interno do DOCTYPE são copiados caractere por caractere.
- Conteúdo misto nunca é reindentado: em <p>Oi <b>aí</b>!</p> o espaçamento fica como digitado, porque acrescentar quebras de linha mudaria o texto. O mesmo vale para xml:space="preserve", copiado literalmente.
- Elementos vazios mantêm a forma que você digitou: <a></a> não é reduzido a <a/>, e <a/> não é expandido. Atributos não são ordenados e aspas não são unificadas.
- Minificar apaga apenas espaços estruturais. Espaços no texto, comentários, CDATA e o DOCTYPE são mantidos — nada é removido do seu conteúdo.
- Uma tag, comentário, CDATA ou DOCTYPE não fechado bem no fim da entrada é reportado como aviso, não erro: você ainda recebe um resultado. Erros reais (tags incompatíveis, valores de atributo sem aspas, um “&” solto) são erros com linha e coluna.
- Um fragmento (vários elementos de nível superior, ou texto fora da raiz) é formatado e reportado como fragmento. Entrada sem nenhum elemento é erro.
- Números de linha e coluna contam pontos de código Unicode, então um emoji é uma coluna. Apenas espaço, tabulação, avanço de linha e retorno de carro contam como espaço em branco; U+3000 ou U+00A0 dentro do texto é conteúdo e nunca é removido.
- Sem HTML: tags de fechamento omitidas como </li> ou <br> são reportadas como não fechadas. Sem upload de arquivo, sem parâmetros de URL, sem histórico, sem visão em árvore, sem XML→JSON. Tudo roda no seu navegador: nada é enviado ou armazenado.
- Acima de 200.000 caracteres o resultado é atualizado cerca de 0,6 s depois de você parar de digitar; o texto nunca é truncado. A saída usa LF e não termina com quebra de linha; a formatação é idempotente.
Ferramentas relacionadas
O que as pessoas costumam precisar depois que a estrutura está legível.