Formatez du XML en ligne
Collez une longue ligne de XML, comme un catalogue de livres, et obtenez une arborescence indentée de deux espaces par niveau. Tout le document est vérifié d'abord : une balise mal fermée est signalée au lieu d'être à moitié formatée. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Un XML lisible simplifie considérablement l’examen des configurations, flux, charges d’intégration et formats de documents. Ce formateur analyse le XML que vous fournissez, vérifie que sa structure est bien formée, puis le sérialise avec une indentation prévisible. Les éléments imbriqués deviennent clairs, les attributs emploient des guillemets uniformes et les espaces de présentation inutiles disparaissent. Si des balises ne correspondent pas, si une entité est incorrecte, si un attribut est mal construit ou si le document ne possède pas une racine unique, l’opération renvoie une erreur au lieu d’une sortie simplement plausible.
Transformez un XML compact en structure facile à relire
Les machines savent le traiter, mais il devient difficile de voir où finit un enregistrement et où commence le suivant. Collez la source dans le formateur : chaque niveau reçoit une indentation régulière qui permet de distinguer parents, enfants, voisins, attributs, commentaires et instructions de traitement. Vous pouvez fournir une chaîne d’indentation et choisir des espaces ou des tabulations selon les conventions de votre dépôt.
Les éléments contenant du texte restent compacts afin de ne pas ajouter de caractères de mise en page au contenu mixte, tandis que les nœuds structurels sont répartis sur plusieurs lignes. Le formatage ne renomme aucun élément, ne réordonne pas les attributs, n’invente pas d’espace de noms et ne répare pas discrètement un balisage défectueux.
La validation précède toujours le résultat formaté
Une belle indentation n’est utile que si le document sous-jacent est valide. L’analyseur contrôle donc toute l’entrée avant de renvoyer le résultat. Chaque élément ouvert doit posséder la bonne fermeture, un nom d’attribut ne peut apparaître qu’une fois sur une balise, les valeurs entre guillemets doivent se terminer correctement et le document doit contenir exactement une racine.
Les commentaires, sections CDATA, instructions de traitement, références numériques de caractères, cinq entités XML prédéfinies et une déclaration de type de document sont reconnus et vérifiés à leurs emplacements autorisés. Les entités nommées inconnues sont refusées, car leur résolution sans déclaration serait ambiguë et potentiellement dangereuse. Les erreurs donnent une cause concise, par exemple une fermeture incompatible ou un commentaire inachevé, au lieu de restituer un document partiel.
Cette capacité ne télécharge ni schéma, ni ressource DTD, ni définition d’espace de noms. Elle confirme que le XML est bien formé, mais pas qu’il respecte un vocabulaire métier ou un XSD particulier.
Pour un contrôle ponctuel ou un usage répété
Pour une charge occasionnelle, l’exécuteur du navigateur formate rapidement le XML sans outil local. Comme l’implémentation n’utilise ni réseau, ni hasard, ni horloge, ni inférence de modèle, une entrée et une indentation identiques produisent toujours la même sortie. Cette stabilité limite le bruit dans le contrôle de versions.
Considérez le résultat comme une présentation normalisée de la structure et non comme du XML canonique destiné aux signatures cryptographiques. Si vous devez préserver chaque octet, valider un schéma, développer des entités externes, signer ou respecter une norme de canonicalisation, choisissez une bibliothèque XML auditée pour ce processus avant toute vérification ou signature.
Cas d’usage
Refusez les imports mal formés
Contrôlez le XML reçu à l’entrée du pipeline et renvoyez une erreur utile lorsque balises, entités ou attributs sont incorrects.
Questions fréquentes
Cet outil répare-t-il un XML mal formé ?
Non. Il renvoie une erreur si le document est mal formé, afin qu’une correction accidentelle ne masque pas un problème à la source.
Puis-je choisir des tabulations ou des espaces ?
Oui. Définissez l’indentation avec au maximum huit espaces ou tabulations. Deux espaces sont utilisés par défaut.
Le document est-il validé par un XSD ou une DTD ?
Non. Seule la bonne formation du XML est contrôlée ; aucun schéma ni aucune ressource DTD externe n’est chargé.
Le formatage modifie-t-il le contenu textuel ?
Les éléments textuels ou mixtes restent compacts pour ne pas recevoir d’espaces. L’écriture des entités et les guillemets peuvent être normalisés sans changer les valeurs.
Pourquoi mon XML est-il refusé ?
Parce qu'il n'est pas bien formé. Les causes habituelles sont une balise fermante qui ne correspond pas, un attribut répété sur une même balise, des guillemets ou un commentaire non fermés, plusieurs éléments racines ou une entité nommée inconnue. Le message précise le type de problème.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/web/xml-format \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"xml":"<catalog><book id=\"1\"><title>Practical XML</title><available>true</available></book></catalog>"}'const res = await fetch("https://api.kit.forhosting.com/web/xml-format", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"xml": "<catalog><book id=\"1\"><title>Practical XML</title><available>true</available></book></catalog>"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/xml-format",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"xml": "<catalog><book id=\"1\"><title>Practical XML</title><available>true</available></book></catalog>"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/xml-format", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"xml":"<catalog><book id=\\"1\\"><title>Practical XML</title><available>true</available></book></catalog>"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"xml":"<catalog><book id=\"1\"><title>Practical XML</title><available>true</available></book></catalog>"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/xml-format", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"xml": "<catalog><book id=\"1\"><title>Practical XML</title><available>true</available></book></catalog>"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.xml_format",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Transformez un XML compact en structure facile à relire
Le XML arrive souvent sur une seule ligne depuis une réponse API, un fichier de réglages exporté ou un message copié dans un journal.
Utilisez le navigateur ponctuellement et l’API pour automatiser
Pour les tâches récurrentes, l’API fournit le même algorithme déterministe aux tests, pipelines d’importation, utilitaires d’assistance et intégrations d’éditeur pour $0.002 par requête.
Cas d'intégration
Examinez une charge API
Développez une réponse XML compacte en hiérarchie lisible avant d’analyser les valeurs, l’imbrication et les attributs.
Normalisez les fixtures de test
Appliquez une indentation stable au XML généré afin que les revues et comparaisons révèlent clairement les changements structurels.
Questions techniques
Combien coûte le formatage du XML ?
L’exécution est gratuite dans le navigateur et coûte $0.002 par requête API.