Formateur et compresseur XML
FormatageEmbellir ou compresser du XML avec fast-xml-parser. Normalise l'indentation, les attributs et les balises auto-fermantes. Traitement XML pur — sans conversion de format.
Les URL distantes ne sont pas récupérées ; collez votre JSON directement.
Sur cette page
Qu’est-ce qu’un formateur XML ?#
Un formateur XML reformate un document qui a perdu sa structure — une réponse SOAP déversée sur une ligne, un flux RSS passé à travers un proxy qui a collapser les espaces, ou un fichier de configuration édité dans une zone de texte qui n’a pas préservé l’indentation — et le réindente afin que la hiérarchie des éléments soit visible. L’inverse, la compression, retire chaque octet d’espace inter-balises afin que le document soit aussi petit que possible pour le transport.
Ce qui rend l’aller-retour XML plus difficile qu’il n’y paraît, c’est qu’un chercher-remplacer naïf sur < et > détruit de l’information. L’ordre des éléments, la déclaration <?xml?>, les commentaires, les instructions de traitement comme <?xml-stylesheet?>, l’ordre des attributs, et la différence entre <a></a> et <a/> portent tous du sens. Cette page utilise fast-xml-parser en mode préserver-l’ordre, qui analyse le document en une arborescence ordonnée et la reconstruit fidèlement — donc la mise en forme est une vue normalisée de votre document, pas un document trié différemment. C’est aussi pourquoi cet outil est distinct du convertisseur JSON/XML : il fait de l’aller-retour XML-vers-XML pur, sans jamais changer le format des données.
Mode d’emploi#
- Collez votre XML dans le panneau Entrée à gauche. L’espace réservé montre un document
<?xml?>minimal si vous avez besoin d’un point de départ, ou cliquez sur Exemple. - Choisissez un bouton de Mode dans la barre d’outils :
- Formater — analyser, puis reconstruire avec indentation et sauts de ligne. Les éléments vides se réduisent en forme auto-fermante (
<a></a>devient<a/>), les attributs sont préservés, les commentaires et la déclaration survivent. - Compresser — analyser, puis reconstruire en une seule ligne compacte sans espaces inter-balises ni saut de ligne final.
- Formater — analyser, puis reconstruire avec indentation et sauts de ligne. Les éléments vides se réduisent en forme auto-fermante (
- En mode Formater, choisissez une Indentation : 2, 4 ou tabulation.
- Lisez le résultat dans le panneau Sortie. L’en-tête affiche la taille de sortie en caractères ; utilisez Copier pour le récupérer. Effacer réinitialise les deux panneaux.
Si votre entrée n’est pas bien formée — une balise non fermée, un & parasite qui devrait être & — la barre d’état signale l’erreur avec une ligne et colonne au mieux, afin que vous puissiez trouver le problème au lieu de scruter une sortie vide.
Principales fonctionnalités#
- Aller-retour fidèle. L’analyse en mode préserver-l’ordre conserve l’ordre du document, la déclaration
<?xml?>, les commentaires et les instructions de traitement à travers le cycle formater/compresser. - Les deux modes partagent un analyseur. Formater et compresser analysent à l’identique ; ils ne diffèrent que par la façon dont le constructeur émet le texte. Donc si compresser réussit, formater réussira aussi, et inversement.
- Normalisation auto-fermante. Les éléments vides comme
<a></a>se réduisent en<a/>, ce qui est la forme compacte canonique et rend les différences d’espaces évidentes lors d’un diff. - Les valeurs restent des chaînes. L’analyseur est configuré avec
parseTagValue: false, donc un nœud textueltruereste la chaîne"true"et007reste"007". Pas de conversion de type silencieuse qui vous surprendrait au retour. - Gère les grosses entrées hors du fil principal. Les documents de plus de 1 Mo sont routés via un Web Worker, donc la page reste réactive pendant l’analyse. Les entrées plus petites s’exécutent en ligne.
- Strictement côté client. L’analyseur est embarqué dans la page ; votre XML ne quitte jamais le navigateur.
Exemple détaillé#
Un petit document de configuration entassé sur deux lignes :
Entrée :
<?xml version="1.0"?><config><server host="example.com" port="443"/><feature name="cache"/><feature name="logs"></feature></config>
Cliquez sur Formater avec 2 espaces :
<?xml version="1.0"?>
<config>
<server host="example.com" port="443"/>
<feature name="cache"/>
<feature name="logs"/>
</config>
Deux choses sautent aux yeux. La déclaration <?xml version="1.0"?> a survécu à l’aller-retour en haut du document. Et <feature name="logs"></feature> tout comme la déjà auto-fermante <feature name="cache"/> apparaissent désormais toutes deux comme <feature name="logs"/> — les éléments vides ont été normalisés en forme auto-fermante, donc les deux fonctionnalités à la même forme se ressemblent enfin. Cliquez sur Compresser sur l’entrée d’origine et vous obtenez la forme de transport :
<?xml version="1.0"?><config><server host="example.com" port="443"/><feature name="cache"/><feature name="logs"/></config>
Chaque octet d’espace décoratif a disparu, mais l’ordre des attributs sur <server> est intact et la déclaration toujours là.
FAQ#
Quelle est la différence entre cet outil et le convertisseur JSON/XML ?#
Cet outil est du XML en entrée, du XML en sortie — il embellir ou compresse un document XML et vous rend du XML. Le convertisseur JSON/XML de ce site traduit entre les deux formats, transformant du XML en une arborescence d’objets JSON ou vice versa. Utilisez cette page quand vous voulez le même format, juste mieux disposé ; utilisez le convertisseur quand vous voulez réellement changer de format.
La mise en forme préserve-t-elle mes commentaires ?#
Oui. Les commentaires sont capturés dans l’arborescence ordonnée pendant l’analyse et réémis par le constructeur, donc <!-- note --> survit aussi bien à Formater qu’à Compresser. L’instruction de traitement <?xml-stylesheet?> est également préservée.
Pourquoi la localisation de l’erreur est-elle parfois approximative ?#
L’analyseur sous-jacent n’expose pas les positions de caractères pour chaque mode d’échec, donc pour certaines erreurs cette page ne peut rapporter qu’une ligne et colonne au mieux extraites du message de l’analyseur. Pour une balise fermante manquante, la localisation est généralement précise ; pour des échecs d’analyse plus exotiques, elle peut défauter à la ligne 1. Le message d’erreur lui-même est toujours affiché en entier, ce qui suffit typiquement à trouver le coupable.
Peut-il gérer de très gros fichiers XML ?#
Oui, jusqu’à la limite de mémoire de votre navigateur. Les entrées au-dessus de 1 Mo sont analysées à l’intérieur d’un Web Worker afin que l’interface ne fige pas. Pour des documents de plusieurs centaines de mégaoctets, attendez-vous à ce que l’analyse prenne un temps et une mémoire notables — c’est un outil de navigateur, pas un serveur en flux.