ToolDeck

Formateur XML

Formate et embellit XML avec coloration syntaxique

Essayer un exemple

Entrée XML

XML formaté

Fonctionne localement · Sûr pour coller des secrets
Le XML formaté apparaîtra ici…

Qu'est-ce que le formatage XML ?

Le formatage XML (également appelé pretty-printing ou embellissement XML) est le processus consistant à ajouter une indentation et des sauts de ligne cohérents à un document XML afin de rendre visible sa structure hiérarchique. Le XML brut provenant d'API, de générateurs de configuration ou de sérialiseurs est souvent livré sur une seule ligne sans espace entre les balises. Un formateur XML analyse ce document en un arbre, puis le resérialise avec un espacement prévisible. Le résultat est visuellement clair et beaucoup plus facile à comprendre, sans qu'aucune information du document ne soit modifiée.

La spécification XML 1.0 (recommandation W3C, cinquième édition) définit une grammaire stricte dans laquelle chaque balise ouvrante doit avoir une balise fermante correspondante ou être auto-fermante, les attributs doivent être entre guillemets, et cinq caractères (<, >, &, ", ') nécessitent un échappement par entités. Un formateur doit respecter ces règles tout en insérant uniquement des espaces blancs non significatifs qui ne modifient pas l'ensemble d'informations (infoset) du document.

Un XML formaté est plus facile à lire lors des revues de code, plus facile à comparer dans le contrôle de version, et plus facile à déboguer lorsqu'un service renvoie des données inattendues. L'opération de formatage est elle-même sans perte : le contenu logique du document reste identique, seule la présentation change. Des outils comme git diff et les plateformes de révision de pull requests n'affichent que les lignes modifiées — un XML correctement indenté garantit que ces diffs reflètent de vraies modifications, et non du bruit de reformatage.

Before · xml
After · xml
<catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><genre>Computer</genre><price>44.95</price><publish_date>2000-10-01</publish_date></book><book id="bk102"><author>Ralls, Kim</author><title>Midnight Rain</title><genre>Fantasy</genre><price>5.95</price><publish_date>2000-12-16</publish_date></book></catalog>
<catalog>
  <book id="bk101">
    <author>Gambardella, Matthew</author>
    <title>XML Developer's Guide</title>
    <genre>Computer</genre>
    <price>44.95</price>
    <publish_date>2000-10-01</publish_date>
  </book>
  <book id="bk102">
    <author>Ralls, Kim</author>
    <title>Midnight Rain</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2000-12-16</publish_date>
  </book>
</catalog>

Pourquoi utiliser un formateur XML en ligne ?

Formater du XML à la main est laborieux et source d'erreurs, en particulier pour des documents avec une imbrication profonde ou des espaces de noms mixtes. Un formateur dans le navigateur vous donne un résultat formaté en moins d'une seconde, quelle que soit la taille du fichier.

Pretty-print instantané
Collez ou saisissez du XML et obtenez immédiatement une sortie indentée. Pas d'attente pour installer un outil en ligne de commande ni d'étape de build à exécuter.
🔒
Traitement respectueux de la confidentialité
L'analyse et le formatage se font entièrement dans votre navigateur via l'API DOMParser. Votre XML ne quitte jamais votre machine et n'est jamais envoyé à un serveur.
🎨
Indentation configurable
Choisissez entre une indentation de 2 espaces, 4 espaces ou tabulation pour correspondre aux conventions de codage de votre projet, sans modifier de fichiers de configuration.
📋
Sans compte ni installation
Ouvrez la page, collez votre XML et copiez le résultat. Pas d'inscription, pas de logiciel à installer, pas d'extensions de navigateur.

Cas d'utilisation du formateur XML

Développement frontend
Inspectez des fragments SVG ou XHTML renvoyés par un CMS. Formater la sortie brute vous permet de localiser rapidement des attributs spécifiques et des groupes imbriqués.
Ingénierie backend
Déboguez des réponses SOAP, des flux RSS ou des charges utiles XML-RPC provenant de services tiers. La sortie formatée vous permet de repérer des éléments manquants ou des espaces de noms incorrects.
DevOps et CI/CD
Lisez des fichiers Maven pom.xml, des scripts de build Ant ou des fichiers de projet .csproj générés automatiquement sans indentation. Formatez-les avant de les committer pour garder les diffs propres.
QA et tests
Comparez les charges utiles XML attendues et réelles dans les tests d'intégration. Formater les deux côtés avec le même style d'indentation élimine les faux négatifs causés par des différences d'espacement.
Ingénierie des données
Inspectez les exports XML provenant de bases de données, de pipelines ETL ou de portails de données ouvertes. Le XML formaté révèle la structure des enregistrements avant que vous n'écriviez une transformation XSLT ou une requête XPath.
Apprentissage de XML
Les étudiants qui suivent les tutoriels XML du W3C peuvent coller des fichiers d'exercices dans le formateur pour vérifier que leur imbrication et la syntaxe de leurs attributs sont correctes.

Référence des entités prédéfinies XML

XML réserve cinq caractères pour sa syntaxe. Lorsque ces caractères apparaissent dans le contenu textuel ou les valeurs d'attributs, ils doivent être remplacés par des références d'entités prédéfinies. Un formateur correct préserve ces entités lors du pretty-printing.

CaractèreRôle dans XMLEntité
<Start of tag&lt;
>End of tag&gt;
&Start of entity&amp;
"Attribute delimiter&quot;
'Attribute delimiter&apos;

Comparaison des styles d'indentation XML

Il n'existe pas de norme unique pour l'indentation XML. Le choix dépend des conventions de votre équipe et des outils de votre pipeline. Voici les trois styles les plus courants.

2 espaces (recommandé)
Le choix le plus répandu pour le XML lié au web : SVG, XHTML, SOAP, configuration Spring. Maintient les documents profondément imbriqués compacts. Utilisé par défaut dans la plupart des formateurs en ligne et des IDE.
4 espaces
Préféré dans les écosystèmes Java (Maven, Ant, manifestes Android) où les fichiers dépassent rarement 3 à 4 niveaux d'imbrication. Correspond à l'indentation par défaut du code Java et C#.
Caractère de tabulation
Permet à chaque développeur de définir sa propre largeur visuelle dans son éditeur. Courant dans les projets anciens et certains outils Microsoft (.csproj, .nuspec). Produit des fichiers de plus petite taille que les espaces.

Exemples de code : formater XML par programmation

Lorsque vous devez formater du XML dans un script ou un processus de build, chaque langage majeur dispose d'une option intégrée ou dans sa bibliothèque standard. Voici des exemples fonctionnels que vous pouvez copier directement.

JavaScript (DOM API)
const raw = '<root><item>hello</item></root>'
const parser = new DOMParser()
const doc = parser.parseFromString(raw, 'application/xml')
const serializer = new XMLSerializer()
const xml = serializer.serializeToString(doc)

// Indent with XSLT (browser-native approach)
const xslt = new DOMParser().parseFromString(`
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="node()|@*">
      <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>
    </xsl:template>
  </xsl:stylesheet>`, 'application/xml')

const proc = new XSLTProcessor()
proc.importStylesheet(xslt)
const formatted = proc.transformToDocument(doc)
console.log(new XMLSerializer().serializeToString(formatted))
// → <root>\n  <item>hello</item>\n</root>
Python
import xml.dom.minidom

raw = '<root><item>hello</item><item>world</item></root>'
dom = xml.dom.minidom.parseString(raw)
print(dom.toprettyxml(indent='  '))
# → <?xml version="1.0" ?>
# → <root>
# →   <item>hello</item>
# →   <item>world</item>
# → </root>

# With lxml (handles namespaces, XSD, large files)
from lxml import etree
tree = etree.fromstring(raw.encode())
print(etree.tostring(tree, pretty_print=True).decode())
Go
package main

import (
    "encoding/xml"
    "fmt"
    "strings"
)

func formatXML(raw string) (string, error) {
    decoder := xml.NewDecoder(strings.NewReader(raw))
    var out strings.Builder
    encoder := xml.NewEncoder(&out)
    encoder.Indent("", "  ")
    for {
        tok, err := decoder.Token()
        if err != nil {
            break
        }
        encoder.EncodeToken(tok)
    }
    encoder.Flush()
    return out.String(), nil
}
// formatXML("<a><b>1</b></a>") → "<a>\n  <b>1</b>\n</a>"
CLI (xmllint)
# Format XML file with xmllint (part of libxml2, pre-installed on macOS/Linux)
xmllint --format input.xml > formatted.xml

# Format from stdin
echo '<a><b>1</b></a>' | xmllint --format -
# → <?xml version="1.0"?>
# → <a>
# →   <b>1</b>
# → </a>

# Validate and format at the same time
xmllint --format --schema schema.xsd input.xml

Questions fréquemment posées

Le formatage XML modifie-t-il le sens du document ?
Non. Le formatage XML ajoute ou supprime uniquement des espaces blancs non significatifs entre les balises. L'ensemble d'informations XML (infoset) reste identique. Une exception : si votre schéma utilise xml:space="preserve" sur certains éléments, un formateur doit laisser ces éléments intacts — et cet outil respecte cette règle.
Quelle est la différence entre le formatage et la validation XML ?
Le formatage ajoute indentation et sauts de ligne pour rendre le XML lisible. La validation vérifie si le document est conforme à un schéma (XSD, DTD ou RelaxNG). Un document peut être bien formé mais invalide par rapport à son schéma. Utilisez ce formateur pour la lisibilité et l'outil Validateur XML pour la conformité au schéma.
Puis-je formater du XML avec des espaces de noms ?
Oui. Le DOMParser du navigateur gère nativement les espaces de noms XML. Les préfixes d'espaces de noms, les déclarations d'espaces de noms par défaut (xmlns) et les noms d'attributs qualifiés sont tous préservés lors du formatage. Le formateur n'ajoute, ne supprime ni ne renomme aucune liaison d'espace de noms.
Quelle est la taille maximale d'un fichier XML formaté dans le navigateur ?
Le formatage dans le navigateur fonctionne bien pour des documents allant jusqu'à environ 10 Mo. Au-delà, l'arbre DOM consomme une mémoire importante et l'interface peut devenir peu réactive. Pour les très grands fichiers, utilisez un outil en ligne de commande comme xmllint --format, qui traite le XML en flux.
Pourquoi mon XML formaté contient-il une déclaration XML ajoutée ?
Certains formateurs ajoutent <?xml version="1.0"?> lors de la sérialisation de l'arbre DOM. Cette déclaration est optionnelle en XML 1.0 lorsque l'encodage est UTF-8. Si vous n'en voulez pas, supprimez la première ligne de la sortie. La déclaration n'affecte pas l'analyse par tout processeur XML conforme.
Le formatage XML est-il l'opposé de la minification XML ?
Ce sont des opérations inverses. Le formatage ajoute des espaces blancs pour améliorer la lisibilité. La minification supprime tous les espaces blancs non essentiels pour réduire la taille du fichier. Les deux opérations sont sans perte par rapport à l'infoset XML. Si vous avez besoin de minifier du XML, utilisez l'outil Minifieur XML.
Quelle est la différence entre le formatage XML et le formatage HTML ?
XML est strict : chaque balise doit être fermée, les valeurs d'attributs doivent être entre guillemets et le document doit avoir exactement un élément racine. HTML (en particulier HTML5) est tolérant : les balises fermantes optionnelles, les attributs sans guillemets et les éléments vides comme &lt;br&gt; sont tous valides. Un formateur XML rejettera du XML invalide, tandis qu'un formateur HTML tolère une syntaxe que XML n'autoriserait pas.