Formatador e Minificador de XML
FormataçãoEmbeleze ou comprima XML com o fast-xml-parser. Normaliza indentação, atributos e tags de autofechamento. Processamento puramente XML — sem conversão de formato.
URLs remotas não são buscadas; cole seu JSON diretamente.
Nesta página
O que é um formatador de XML?#
Um formatador de XML refluí um documento que perdeu a sua estrutura — uma resposta SOAP despejada numa linha, um feed RSS puxado por um proxy que colapsou os espaços em branco, ou um arquivo de configuração editado numa caixa de texto que não preservou a indentação — e re-indenta-o de modo a que a hierarquia de elementos fique visível. O inverso, minificar, retira todos os bytes de espaço em branco entre tags de modo a que o documento seja o mais pequeno possível para transporte.
O que torna o round-tripping de XML mais difícil do que parece é que um find-and-replace ingénuo em < e > destrói informação. A ordem dos elementos, a declaração <?xml?>, os comentários, as instruções de processamento como <?xml-stylesheet?>, a ordem dos atributos, e a diferença entre <a></a> e <a/> transportam todos significado. Esta página usa o fast-xml-parser em modo preserve-order, que analisa o documento numa árvore ordenada e reconstrói-o fielmente — pelo que a formatação é uma vista normalizada do seu documento, não um reordenado. É também por isso que esta ferramenta é distinta do conversor JSON/XML: faz round-tripping puro de XML para XML, nunca alterando o formato dos dados.
Como usar#
- Cole o seu XML no painel Entrada à esquerda. O marcador de posição mostra um documento
<?xml?>mínimo se precisar de um ponto de partida, ou clique em Exemplo. - Escolha um botão de Modo na barra de ferramentas:
- Formatar — analisar, depois reconstruir com indentação e quebras de linha. Elementos vazios colapsam para forma de autofechamento (
<a></a>torna-se<a/>), os atributos são preservados, os comentários e a declaração sobrevivem. - Minificar — analisar, depois reconstruir como uma única linha compacta sem espaços em branco entre tags e sem mudança de linha final.
- Formatar — analisar, depois reconstruir com indentação e quebras de linha. Elementos vazios colapsam para forma de autofechamento (
- No modo Formatar, escolha a Indentação: 2, 4 ou tabulação.
- Leia o resultado no painel Saída. O cabeçalho mostra o tamanho da saída em caracteres; use Copiar para o recolher. Limpar repõe ambos os painéis.
Se a sua entrada não é bem formada — uma tag por fechar, um & perdido que devia ser & — a barra de estado reporta o erro com uma linha e coluna de melhor esforço, para que se consiga encontrar o problema em vez de olhar para uma saída vazia.
Principais funcionalidades#
- Round-trip fiel. A análise preserve-order mantém a ordem do documento, a declaração
<?xml?>, os comentários e as instruções de processamento através do ciclo formatar/minificar. - Ambos os modos compartilham um analisador. Formatar e minificar analisam de forma idêntica; só diferem em como o construtor emite texto. Por isso se minificar tem sucesso, formatar também terá, e vice-versa.
- Normalização de autofechamento. Elementos vazios como
<a></a>colapsam para<a/>, que é a forma compacta canónica e torna as diferenças de espaço em branco óbvias em diffs. - Os valores mantêm-se como strings. O analisador está configurado com
parseTagValue: false, pelo que um nó de textotruese mantém como a string"true"e007mantém-se como"007". Sem coerção de tipo silenciosa que o surpreenderia no caminho de volta. - Lida com entradas grandes fora da thread principal. Documentos maiores que 1 MB são encaminhados por um Web Worker, para que a página se mantenha responsiva durante a análise. Entradas mais pequenas correm em linha.
- Estritamente no lado do cliente. O analisador está empacotado na página; o seu XML nunca sai do navegador.
Exemplo prático#
Um pequeno documento de configuração amontoado em duas linhas:
Entrada:
<?xml version="1.0"?><config><server host="example.com" port="443"/><feature name="cache"/><feature name="logs"></feature></config>
Clique em Formatar com 2 espaços:
<?xml version="1.0"?>
<config>
<server host="example.com" port="443"/>
<feature name="cache"/>
<feature name="logs"/>
</config>
Duas coisas saltam à vista. A declaração <?xml version="1.0"?> sobreviveu à viagem completa no topo do documento. E tanto <feature name="logs"></feature> como o já-autofechante <feature name="cache"/> aparecem agora como <feature name="logs"/> — os elementos vazios foram normalizados para forma de autofechamento, pelo que as duas features com a mesma forma parecem efetivamente o mesmo. Clique em Minificar na entrada original e obtém a forma de transporte:
<?xml version="1.0"?><config><server host="example.com" port="443"/><feature name="cache"/><feature name="logs"/></config>
Cada byte de espaço em branco decorativo desapareceu, mas a ordem dos atributos em <server> está intocada e a declaração ainda lá está.
FAQ#
Qual é a diferença entre esta ferramenta e o conversor JSON/XML?#
Esta ferramenta é XML dentro, XML fora — embeleza ou minifica um documento XML e devolve-lhe XML. O conversor JSON/XML neste site traduz entre os dois formatos, transformando XML numa árvore de objetos JSON ou vice-versa. Use esta página quando quer o mesmo formato, apenas com melhor forma; use o conversor quando efetivamente quer mudar de formato.
A formatação preserva os meus comentários?#
Sim. Os comentários são capturados na árvore ordenada durante a análise e reemitidos pelo construtor, pelo que <!-- note --> sobrevive tanto a Formatar como a Minificar. A instrução de processamento <?xml-stylesheet?> também é preservada.
Porque é que a localização do erro às vezes é aproximada?#
O analisador subjacente não expõe posições de carácter para todos os modos de falha, pelo que para alguns erros esta página só consegue reportar uma linha e coluna de melhor esforço, analisadas a partir da mensagem do analisador. Para uma tag de fecho em falta, a localização é normalmente precisa; para falhas de análise mais exóticas pode predefinir para a linha 1. A mensagem de erro em si é sempre mostrada na totalidade, o que é tipicamente suficiente para encontrar o culpado.
Consegue lidar com arquivos XML muito grandes?#
Sim, até ao limite de memória do seu navegador. Entradas acima de 1 MB são analisadas dentro de um Web Worker para que a interface não congele. Para documentos na casa das centenas de megabytes, espere que a análise demore um tempo notório e memória — esta é uma ferramenta de navegador, não um servidor de streaming.