Formatage et compactage XML

Collez du XML pour l’indenter ou retirer les espaces entre les balises. Attributs, commentaires, sections CDATA et déclaration reviennent inchangés, et les erreurs de balise sont signalées avec ligne et colonne.

Fonctionne localement dans votre navigateur

Indenter et compresser ne changent pas les données

Le formateur ne fait qu’ajouter ou retirer des espaces entre les balises ; valeurs d’attribut, commentaires, sections CDATA, déclaration, DOCTYPE et instructions de traitement reviennent octet par octet. La compression conserve les commentaires, et un sous-arbre marqué xml:space="preserve" reste intact avec les deux boutons.

Comment formater ou compacter du XML

Indente le XML collé pour le lire, ou supprime les espaces entre les balises pour rendre le document compact. La mise en forme est reconstruite en une seule passe : attributs, commentaires, sections CDATA, déclaration XML, DOCTYPE et instructions de traitement sont réécrits à l’identique.

Cette passe s’exécute dans l’onglet : rien n’est envoyé et la page continue de fonctionner hors connexion. L’imbrication des balises est vérifiée, mais il n’y a pas de validation contre une DTD ou un schéma XML.

  1. Collez le XML dans le champ ci-dessus. L’indentation et les retours à la ligne du texte d’origine n’ont pas d’importance : la mise en forme est reconstruite à partir de la structure.
  2. Cliquez sur Formatage XML pour indenter chaque niveau de quatre espaces, ou sur Compression XML pour retirer les espaces entre les balises et renvoyer le document sur le moins de lignes possible.
  3. Lisez le message sous les boutons. Une balise mal fermée ou jamais fermée, un second élément racine, du texte hors de la racine, un « < » isolé dans le texte ou dans une valeur d’attribut, une valeur sans guillemets, ainsi qu’un commentaire, une section CDATA ou une balise non terminés sont signalés avec leur ligne et leur colonne.
  4. Cliquez sur Copier pour récupérer le résultat ; le bouton copie la sortie formatée et, tant qu’aucun résultat n’existe, le texte saisi. Effacer vide l’entrée et le résultat en même temps.

Ce qui change et ce qui reste intact

Ce que le formatage change

L’indentation est le seul ajout : quatre espaces par niveau, et un élément dont le contenu n’est que du texte reste sur une ligne. Le contenu mixte n’est jamais réorganisé : <p>Hello <b>world</b> !</p> conserve ses espaces et revient exactement tel qu’il a été écrit.

Les valeurs d’attribut, les commentaires, les sections CDATA, la déclaration, le DOCTYPE et les instructions de traitement sont copiés octet par octet, et l’ordre des attributs est conservé. Seule exception : une valeur sans guillemets comme class=x, réécrite en class="x" et signalée, car XML exige les guillemets.

Ce que la compression supprime

La compression retire, à tous les niveaux, les textes composés uniquement d’espaces entre les balises : un document indenté devient une seule ligne compacte. Le contenu textuel n’est pas touché : <a> spaced text </a> et le contenu mixte gardent leurs espaces, et un élément dont tout le contenu est fait d’espaces les garde aussi.

Les commentaires survivent à la compression ; supprimez-les vous-même si les octets comptent. Un sous-arbre marqué xml:space="preserve" reste intact avec les deux boutons.

Quand le document est mal formé

Les problèmes sont signalés par leur position, par exemple « Ligne 1, colonne 10 : </b> ferme <a> à la place. », « Ligne 1, colonne 7 : <a> n’est jamais fermé. » ou « Ligne 1, colonne 1 : </x> n’a pas de balise ouvrante. ». Le résultat est tout de même affiché pour montrer ce qui a pu être mis en forme, mais c’est la position signalée qu’il faut corriger en premier.

Si l’entrée ne contient aucun élément — du texte simple ou seulement des espaces —, l’outil le dit au lieu d’inventer une sortie. Seuls les cinq premiers problèmes sont listés, avec le nombre des suivants.

Taille, vitesse et limites

Un document de 600 Ko contenant 20 000 éléments est formaté en environ 0,15 seconde dans Chrome, et une sortie de plus de 200 000 caractères est affichée sans coloration pour que l’onglet reste réactif. La limite pratique est la mémoire de votre appareil.

La vérification est uniquement structurelle : pas de validation contre une DTD ou un schéma XML, pas de résolution d’entités ni de téléchargement de fichiers externes, et aucun rapport sur les préfixes d’espace de noms déclarés. L’indentation est fixée à quatre espaces.

Outils récents :