Command Palette

Search for a command to run...

Formatteur XML : embellissez, minimisez et validez XML de la bonne manière

Formatteur XML : embellissez, minimisez et validez XML de la bonne manière

T
Toolz Team
|Aug 23, 2026|16 min Lire

Fait partie de la collection Outils de données

La première fois que XML a failli gâcher mon après-midi, c'était une réponse SOAP d'une passerelle de paiement Une ligne Onze mille caractères Pas de nouvelles lignes, pas d'indentation, juste un mur ininterrompu de crochets d'angle que mon terminal a enveloppé dans une brique illisible Quelque part là-dedans il y avait un seul mauvais élément provoquant une discordance de signature, et j'étais censé le trouver à l'œil Je n'ai construit plein de choses depuis - plugins WordPress, API Laravel, l'outillage React derrière [Toolz.dev] (/ - et je peux vous dire qu'un bon formateur XML est l'un de ces utilitaires silencieux que vous n'appréciez jusqu'à ce moment où vous regardez fixez jusqu'à un moment où vous fixez à une date limite de mur de balises derrière vous.

Ce guide est celui que j'aurais aimé avoir cet après-midi-là Il couvre ce que fait réellement un formateur XML, pourquoi embellir et minifier sont les deux faces d'une même pièce, la règle des espaces qui rend le formatage sûr, et la poignée d'erreurs de validation qui rendent compte de presque chaque &quot ; pourquoi won&#39 ; t cette analyse&quot ; moment Vous pouvez suivre dans le navigateur avec le gratuit Formateur XML - il fonctionne entièrement sur votre machine, donc même une charge utile de paiement ne quitte jamais votre ordinateur portable.

tl;dr : Un formateur XML réécrit un document&#39 ;s insignifiant whitespace - l'espace entre tags - sans toucher à sa signification Beautify ajoute des sauts de ligne et une indentation pour que vous puissiez lire la hiérarchie ; minify supprime tout cela pour que le fichier soit aussi petit que possible Un bon formateur préserve les commentaires, les CDATA, la déclaration XML et l'ordre des attributs, et valide la bonne forme (balises correspondantes, éléments fermés, sections terminées) en cours de route. Il fait non vérifiez votre document par rapport à un schéma DTD ou XSD - c'est un travail différent.

Que fait réellement un formateur XML ?

C'est dans l'espace que le formatage devient intéressant, car XML 1.0 nécessite qu'un analyseur transmette chaque caractère à l'intérieur d'un élément à l'application - c'est pourquoi un formateur doit savoir ce qu'il est sûr de toucher. À la base, un formateur XML analyse votre document dans une arborescence de nœuds - éléments, texte, commentaires, sections CDATA, instructions de traitement - puis sérialise cette arborescence avec un espacement cohérent. Cet aller-retour est toute l'astuce. Parce que l'outil comprend la structure plutôt que de faire une recherche et un remplacement aveugles, il peut indenter un arbre profondément imbriqué <order><items><item> enchaînez correctement, mettez chaque frère ou sœur sur sa propre ligne et sachez que le texte à l'intérieur <price>44.95</price> devrait rester sur la même ligne que ses balises plutôt que de s'étendre sur trois.

La raison pour laquelle cela compte se résume à une règle enfouie dans la spécification XML : la plupart des espaces entre les éléments le sont insignifiant. Lorsqu'un analyseur lit <a>\n <b/>\n</a>, les nouvelles lignes et les espaces autour <b/> sont là pour les humains et ne portent aucune donnée Un formateur est autorisé à ajouter, supprimer ou modifier librement cet espace. Ce qu’il ne doit jamais toucher est significatif espace - les caractères à l'intérieur d'un nœud de texte comme <note>Call me at 9am</note>, ou n'importe quoi à l'intérieur d'un bloc CDATA - parce que ce contenu est une donnée réelle Chaque décision de formatage le Formateur XML fait des flux à partir du respect de cette ligne.

Donc embellir n'est pas une peluche cosmétique Quand vous ré-indentez cette brique SOAP de onze mille caractères, la hiérarchie des éléments devient visible, et tout à coup la mal placée <Amount> le nœud trois niveaux trop profond est évident Le formatage est un outil de débogage autant qu'un outil de lisibilité.

Pourquoi je minifierais XML au lieu de l'embellir ?

Embellir et minifier sont le même moteur pointé dans des directions opposées. Embellir ajoute des espaces pour les humains ; minify le supprime pour les machines. Vous recherchez une minify lorsque la taille ou le transport est important : réduire un fichier de configuration livré dans un pack d'applications mobiles, couper un corps de requête avant qu'il ne passe sur une connexion lente, ou normaliser un document afin que deux versions puissent être comparées octet par octet sans que le bruit d'indentation ne gêne.

L'économie est réelle mais rarement dramatique. XML&#39 ; La verbosité vit dans ses noms de balises répétés, et non dans son espace, donc la minification se réduit généralement entre cinq et vingt pour cent en fonction de la force d'indentation de l'original. Cela vaut la peine d'être utilisé, mais si vous avez besoin d'une compression sérieuse, gzip sur le fil en fait bien plus - la minification, puis le gzipping, c'est l'approche par courroie et accolades utilisée par de nombreuses API.

Voici le modèle mental que j'utilise pour décider dans quelle direction pointer l'outil :

situation embellir réduire
Lecture ou débogage d'une réponse à l'œil nu oui non
Commettre un fichier de configuration dans le contrôle de version Oui (diffs propres) non
Expédition de XML dans un pack d'applications ou sur le réseau non oui
Stockage de nombreux petits documents dans une colonne de base de données non oui
Préparation d'un document pour une différence octet par octet Soit, de manière cohérente Soit, de manière cohérente
Remise de XML à un autre développeur oui non

La discipline clé est la cohérence Si vous diffiez deux documents, exécutez l'un et via le même mode avec les mêmes options en premier - sinon vous comparez les styles d'indentation, pas le contenu.

Comment le formatage évite-t-il de modifier mes données ?

C'est l'anxiété que chaque formateur a à gagner son chemin : &quot ; si cet outil réécrit mon XML, comment puis-je savoir qu'il n'a pas cassé quelque chose tranquillement ?&quot ; La réponse honnête est qu'un formateur bien construit ne change jamais que l'espace entre les balises et laisse quatre choses strictement seules.

La première est texte contenu. Les caractères à l'intérieur d'un élément sont copiés textuellement. Cela inclut les entités - un littéral &amp; reste &amp;« , il n'est jamais utilement décodé » & (ce qui produirait du XML non valide) ou double-codé vers &amp;amp;. le Formateur XML traite votre texte comme opaque, ce qui est exactement ce que vous voulez.

La seconde est Sections CDATA. un <![CDATA[ ... ]]> le bloc existe précisément pour que vous puissiez supprimer du contenu brut et non échappé - un extrait de JavaScript, un morceau de HTML, une chaîne pleine de < et & - dans un document XML sans l'échapper Un formateur émet ce contenu exactement tel qu'il l'a trouvé, sans s'échapper, sans se réindenter à l'intérieur du bloc.

La troisième est commentaires et la déclaration. Commentaires (<!-- ... -->), le <?xml version="1.0"?> déclaration, et toutes les instructions de traitement sont préservées et placées de manière judicieuse Vous pouvez choisir de supprimer les commentaires lorsque vous voulez un fichier plus léger, mais c'est votre décision, pas quelque chose que l'outil fait dans votre dos.

Le quatrième est ordre des attributs et citation. Par défaut le formateur conserve vos attributs dans l'ordre dans lequel vous les avez écrits, avec le style de citation que vous avez utilisé, car la spécification XML traite l'ordre des attributs comme insignifiant et il n'y a aucune raison de le baratter lorsque vous faire décorer souhaitez un ordre canonique - pour des différences plus nettes, ou pour comparer deux éléments qui portent les mêmes attributs dans des ordres différents - un &quot ; trier les attributs&quot ; l'option les place dans l'ordre alphabétique pour vous.

Parce que tout cela fonctionne côté client en JavaScript, il y a un dividende de confidentialité aussi : un document plein de chaînes de connexion, d'identifiants internes ou d'enregistrements clients est formaté sur votre propre machine et jamais téléchargé Si vous vous souciez de garder les données de travail hors d'autres personnes&#39 ; s serveurs - et vous devriez - ce modèle vaut la peine d'être compris, et j'en ai écrit plus à ce sujet dans le guide de confidentialité des données pour les outils en ligne.

Quelles erreurs XML le formateur attrape-t-il ?

Avant qu'un formateur puisse joliment imprimer quoi que ce soit, il doit analyser le document, et l'analyse est l'endroit où se produit la validation utile. C'est forme vérifier - les règles structurelles auxquelles chaque document XML doit obéir - et d'après mon expérience, trois erreurs représentent l'écrasante majorité des échecs.

Le plus courant est de loin un esperluette nue. Réserves XML & pour démarrer une entité, donc un brut & dans le texte - le genre qui se faufile via une URL comme ?a=1&b=2 ou un nom de société comme &quot ; Marques & amp ; Spencer&quot ; - fait attendre l'analyseur à un nom d'entité puis s'étouffer quand il n'en trouve pas Le correctif est d'écrire &amp;2, et un bon message d'erreur vous indiquera la ligne afin que vous ne chassiez pas les aveugles.

La seconde est un balise non adaptée ou non fermée. Ouvrir un <div> et fermez-le avec </section>(ou ouvrez un) <span> et ne le fermez jamais du tout, et le document n'est plus bien formé Le formateur suit la pile d'éléments ouverts pendant qu'il analyse, de sorte qu'il peut vous dire exactement quelle balise il s'attendait à voir fermée et laquelle il a réellement trouvé Ce seul message - & quota ; attendu </book> mais trouvé </author> à la ligne 14&quot ; - suffit habituellement à résoudre le problème en quelques secondes.

Le troisième est un section non terminée: un commentaire ouvert avec <!-- cela n'atteint jamais -->ou un bloc CDATA qui n'atteint jamais ]]>. Ceux-ci sont faciles à créer lorsque vous modifiez manuellement et supprimez un peu trop. Encore une fois, le formateur signale la ligne où la section en fuite a commencé.

Ce que fait le formateur non est-ce que vérifier votre document par rapport à un schéma Bien-formé demande &quot ; est-ce que ce XML structurellement valide ?&quot ; Validité demande &quot ; ce XML suit-il les règles de mon particulier type de document - les bons éléments, dans le bon ordre, avec les bons types de données - tels que définis par une DTD ou XSD ?&quot ; ce sont des couches séparées Un document peut être parfaitement bien formé et être toujours un non-sens pour son but La validation de schéma a besoin du schéma, et c'est un outil différent Le formateur garantit le premier calque, qui est celui qui arrête le crash de votre analyseur.

Comment formater XML dans mon éditeur ou construire un pipeline ?

L'outil de navigation est le chemin le plus rapide pour un document unique, mais il vaut la peine de connaître les alternatives afin que vous puissiez choisir la bonne pour le travail.

La plupart des éditeurs formataient XML nativement Dans VS Code, le &quot ; Format Document&quot ; intégré commande (Shift+Alt+F) gère XML, et les extensions comme Red Hat&#39 ; le serveur de langage XML ajoute un formatage sensible au schéma par-dessus IntelliJ et ses frères et sœurs se reformatent avec Ctrl+Alt+L. Ceux-ci sont idéaux lorsque le fichier est déjà ouvert devant vous.

En ligne de commande, xmllint --format file.xml (partie de libxml2, qui est livrée sur la plupart des systèmes Unix) embellit, et xmllint --noblanks file.xml vous rapproche de la sortie minifiée Dans un projet Node, les bibliothèques comme xml-formatter ou prettier avec le slot du plugin XML dans une étape de construction Les développeurs Python s'adressent à xml.dom.minidom.parseString(s).toprettyxml()« Bien qu'il soit averti, il est connu pour ajouter des lignes vides supplémentaires autour des espaces existants ».

Alors pourquoi utiliser le Formateur XML du tout ? trois raisons pour lesquelles je reviens sans cesse Il n'a besoin d'aucune installation, d'aucune configuration et d'aucun projet - vous collez et partez Il conserve les données sur votre machine, ce qui compte lorsque le XML est une véritable charge utile plutôt qu'un exemple jouet Et il s'associe naturellement aux outils voisins : une fois votre XML propre et valide, le convertissant en JSON avec le Convertisseur XML en JSON est un clic et le voyage inverse est terminé JSON vers XML utilise les mêmes conventions Si votre journée est majoritairement JSON, le Formateur JSON est l'équivalent de ce format, et toute la famille est cataloguée dans le Boîte à outils pour les développeurs Web.

Quand dois-je formater par rapport à convertir mon XML ?

Une question que je reçois des personnes plus récentes à ceci : si JSON est plus facile à lire, pourquoi formater XML au lieu de simplement le convertir ? la réponse est que le formatage et la conversion résolvent différents problèmes.

Format quand vous en avez besoin garder le XML - parce qu'un point de terminaison SOAP le demande, parce qu'un flux RSS ou Atom est XML par définition, parce que votre fichier de configuration, votre disposition Android, ou votre Maven pom.xml est simplement XML et le sera toujours Le formatage rend ce XML lisible ou compact tout en le laissant en tant que XML Rien en aval n'a à changer.

Convertissez quand vous le souhaitez travailler avec les données dans un format différent - extraire des valeurs dans une partie avant JavaScript, charger un flux dans un système qui parle JSON ou normaliser plusieurs sources en une seule forme. La conversion modifie le format, et avec elle une partie de la fidélité : les attributs XML, le contenu mixte et l'ordre des éléments n'ont pas d'équivalents JSON propres, donc un convertisseur fait des choix délibérés (les attributs deviennent des clés préfixées, les balises répétées deviennent des tableaux) que vous devez comprendre avant de vous en fier à eux.

Ma règle empirique : formater d'abord, toujours Un document propre et validé est plus facile à raisonner pour savoir si votre prochaine étape est de l'éditer, de le differ ou de le convertir Le formatage est l'opération bon marché, sûre et sans perte ; la conversion est celle avec perte que vous faites une fois que vous savez que la structure est saine Les plans de site sont un bel exemple de XML que vous formatez plutôt que de convertir - si vous en construisez un, le dédié sitemap générateur produit directement une sortie valide et bien formée.

Questions fréquentes

Comment formater XML en ligne ?

Collez votre XML dans le panneau de saisie, choisissez Beautify, choisissez une largeur d'indentation et cliquez sur Format. L'outil analyse le document, le ré-encode et vous permet de copier ou de télécharger le résultat. Tous les traitements se produisent dans votre navigateur - rien n'est téléchargé.

Quelle est la différence entre embellir et miniifier le XML ?

Embellir ajoute des sauts de ligne et une indentation pour que la hiérarchie des éléments soit facile à lire, ce qui est idéal pour l'édition et le débogage La minification supprime tous les espaces entre les balises pour produire le plus petit fichier possible, ce qui est idéal pour le stockage ou l'envoi sur le réseau Les deux préservent le document&#39 ; s signifiant ; seul l'espace blanc insignifiant change.

Le formatage change-t-il le sens de mon XML ?

non . Seul l'espace blanc entre les balises est modifié - les éléments, les attributs, le contenu du texte, les commentaires et les Cdata ne sont pas modifiés. Étant donné que les espaces blancs importants dans les nœuds de texte et les CDATA sont conservés, un document bien formé se comporte de manière identique avant et après le formatage.

Les commentaires et les sections CDATA sont-elles conservées ?

Oui. Les commentaires, les sections CDATA, la déclaration XML et les instructions de traitement sont tous conservés. Les commentaires sont en retrait aux côtés des éléments avec lesquels ils se trouvent, et le contenu CDATA est émis textuellement sans qu'aucun échappement ne s'échappe. Vous pouvez également choisir de supprimer les commentaires si vous souhaitez une sortie plus simple.

Cet outil peut-il valider mon XML ?

Oui. Avant le formatage, le document est entièrement analysé et les problèmes structurels - un élément non fermé, une balise de fermeture qui ne correspond pas à sa balise d'ouverture, ou une section de commentaires ou de CDATA non terminée - sont signalées avec un numéro de ligne afin que vous puissiez les corriger rapidement. Il vérifie la bonne formalité, et non la validité par rapport à un schéma DTD ou XSD.

Pourquoi mon XML ne parvient-il pas à formater ?

Presque tous les échecs sont des erreurs de bien-formé Les plus courants sont un simple esperluette dans le texte (il doit être écrit comme une entité, ou l'analyseur le lit comme le début d'une entité), une balise de fermeture qui ne correspond pas à l'élément qu'il ferme, et un élément qui est ouvert mais jamais fermé Le message d'erreur pointe sur la ligne pour que vous puissiez sauter directement dessus.

Est-il sûr de formater XML contenant des données sensibles ?

Oui. L'analyseur fonctionne entièrement en Javascript dans votre navigateur - aucune demande de réseau ne transporte vos données, rien n'est enregistré ou stocké, et l'outil fonctionne hors ligne une fois chargé. XML contenant des clés d'API, des chaînes de connexion ou des enregistrements clients ne quittent jamais votre machine.

Puis-je convertir le XML formaté en JSON par la suite ?

Oui. Une fois que le XML est propre et valide, le convertisseur XML en JSON le transforme en JSON équivalent, mappant des attributs aux clés préfixées et des balises répétées sur des tableaux. Le formatage rend la structure évidente d'abord, ce qui vous aide à comprendre comment il va mapper avant de convertir.


Écrit par Liton - constructeur de Toolz.dev, WP Adminify, et une longue liste de projets Laravel et React Chaque outil mentionné ici fonctionne gratuitement et entièrement dans votre navigateur à l'adresse [Toolz.dev] (/.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!