Formatador XML
Indente ou minifique um documento XML sem mudar o que ele diz, inteiramente no seu navegador.
Roda inteiramente no seu navegador. Nada é enviado, registrado ou armazenado.
Cole um documento XML e leia-o. Indentação, ou tudo de volta em uma linha — e nada mais alterado, porque em XML quase tudo o que um formatador gostaria de arrumar é dado.
Como funciona
Um formatador de HTML pode indentar à vontade entre elementos de bloco, porque um navegador não renderiza espaço em branco ali. O XML não tem elementos de bloco nem elementos inline. Ele não sabe o que nenhum dos seus elementos significa, e o espaço em branco dentro de um elemento que contém texto faz parte desse texto.
Então a regra aqui é estreita, e é a ferramenta inteira: um elemento só é reindentado quando contém outro elemento e nenhum texto próprio. Qualquer outra coisa — texto, conteúdo misto, CDATA, uma folha contendo só espaços, um elemento marcado com xml:space="preserve" — volta byte por byte.
Dentro de uma tag de abertura o espaço em branco nunca é dado, então sequências dele entre atributos viram um espaço só. O que está dentro das aspas fica intocado. Os atributos nunca são reordenados, renomeados nem recolocados entre aspas.
As tags precisam estar balanceadas antes de qualquer coisa acontecer. Um documento cuja tag de fechamento não casa, ou que abre um elemento e nunca o fecha, é recusado em vez de arrumado: um formatador que indenta marcação quebrada devolve algo que parece certo e está errado de um jeito novo.
Exemplos
| Caso | Entrada | Resultado |
|---|---|---|
| Conteúdo misto fica exatamente como está | <p>Paper <em>and</em> cloth.</p> | <p>Paper <em>and</em> cloth.</p> |
| Uma folha com espaços os mantém | <value> </value> | <value> </value> |
| Os atributos ficam com um espaço entre eles | <a b="1" c="2"/> | <a b="1" c="2"/> |
Perguntas frequentes
Por que o meu documento voltou em uma linha?
Porque o elemento raiz dele contém texto além de elementos. Isso é conteúdo misto, e o espaço em branco nele é dado: indentar inseriria caracteres que o seu documento não tinha. O formatador está funcionando — ele está se recusando a editar o seu conteúdo para deixá-lo mais bonito.
Ele confere o meu XML contra um esquema?
Não. Ele confere se as tags estão balanceadas, que é o de que ele precisa para indentar qualquer coisa, e nada além. Para conferir um documento contra um XSD, use o validador de XML.
Alguma coisa sai do meu navegador?
Não. O formatador é JavaScript rodando na sua máquina; o documento nunca é enviado a lugar nenhum, que é o único arranjo sensato para um arquivo que você cola apenas para ter o espaço em branco alterado.
Por que os meus atributos não ficam em linhas separadas?
Porque uma tag de abertura não tem aninhamento a mostrar. Quebrá-la em linhas é questão de gosto, e não de estrutura, e este formatador só faz as coisas que têm uma resposta certa.
O que o modo "em uma linha" remove?
Apenas o espaço em branco entre elementos, nos mesmos lugares em que indentar o teria acrescentado. Texto, CDATA e comentários ficam intocados, então o documento continua dizendo exatamente o que dizia.
Bom saber
- Uma passagem de layout, não um analisador. Namespaces não são resolvidos, entidades não são expandidas, nenhum valor é normalizado e nada é conferido contra um esquema.
- A codificação é a do seu navegador. A declaração no topo do documento é mantida sem alteração, diga ela o que disser.
Todas as ferramentas de Código