100 % local — seus dados nunca saem do seu navegador

Formatador XML — leia um documento de uma linha

Indente XML sem mexer no que ele diz. Um elemento que mistura texto e filhos guarda a linha dele: em XML esses espaços são conteúdo.

Instantâneo Privado Zero cookies
Indentação

Entrada XML

Saída XML

O que esta ferramenta faz

O conteúdo de elementos é indentado; o conteúdo textual não.

<biblioteca><livro><titulo>Dune</titulo></livro></biblioteca>

vira

<biblioteca>
  <livro>
    <titulo>Dune</titulo>
  </livro>
</biblioteca>

A regra que importa

Um elemento que mistura texto e elementos filhos fica numa única linha, exatamente como foi escrito.

<p>Olá <b>mundo</b> de novo</p>

Isso permanece assim. A razão é a diferença entre XML e HTML que mais surpreende: o HTML colapsa espaços, o XML não. Uma quebra de linha inserida entre Olá e <b> não é apresentação em XML — são dados de caractere, e ficam no documento para quem o ler depois.

Um formatador que indenta dentro de conteúdo misto não embeleza o documento: edita o texto dele. Este indenta o elemento como bloco e deixa o interior em paz.

O que conta como indentação

Apenas um nó de texto totalmente branco, contendo quebra de linha, e situado num elemento sem texto significativo próprio. Todo o resto é conteúdo.

Um espaço único entre dois elementos da mesma linha — <b>x</b> <i>y</i> — é mantido. Nada no documento diz que ele é dispensável, e mantê-lo custa um caractere.

xml:space="preserve" suspende tudo isso, para aquele elemento e tudo abaixo dele.

O prólogo volta como você escreveu

A declaração, o DOCTYPE e qualquer instrução de processamento são copiados literalmente:

<?xml version="1.1" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE biblioteca SYSTEM "biblioteca.dtd">
<?xml-stylesheet href="style.xsl"?>

Os três sobrevivem. Reescrever uma declaração como version="1.0" encoding="UTF-8" — o que muitas ferramentas fazem — reetiqueta o documento, e reetiquetar muda a leitura dos seus bytes.

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 meu elemento <p> ficou numa linha só?
Porque ele mistura texto e elementos filhos. O XML não tem equivalente ao colapso de espaços do HTML: uma quebra de linha inserida entre `Olá` e `<b>` passa a fazer parte do texto e fica lá. O elemento é indentado como bloco e o interior fica exatamente como você escreveu.
A formatação muda meu documento?
Não. Só é reescrito o espaço em branco que é pura indentação: um nó de texto totalmente branco, com quebra de linha, num elemento sem texto significativo. Todo o resto, inclusive trechos `xml:space="preserve"`, volta caractere por caractere. Formatar e depois minificar devolve o documento de partida.
Minha declaração diz ISO-8859-1. Ela será reescrita?
Não. O prólogo — declaração, DOCTYPE, instruções de processamento — é copiado literalmente. Reetiquetar um documento ISO-8859-1 como UTF-8 mudaria a leitura dos seus bytes: a versão, a codificação e `standalone` ficam como você declarou.

Conversores relacionados