Skip to content

Convertisseur XML vers JSON

Collez du XML, obtenez du JSON instantanément. Convertit les attributs en clés @_, gère les éléments répétés comme des tableaux. 100 % dans le navigateur, rien n'est envoyé, sans inscription.

Sans pistage Fonctionne dans le navigateur Gratuit
Options · 2 espaces · XML → JSON
Indentation
0 car.
JSON Sortie
0 lignes
Vérifié pour la gestion de la bonne formation XML 1.0, la correction de la convention @_/#text et la précision de la préservation des chaînes — Go Tools Engineering Team · 29 mai 2026

Qu'est-ce que la Conversion XML vers JSON et Comment Fonctionne-t-elle ?

XML (Extensible Markup Language) et JSON (JavaScript Object Notation) sont tous deux des formats de données structurées, mais ils ont des modèles fondamentalement différents : XML est un arbre d'éléments avec des attributs et du contenu mixte (texte entremêlé avec des éléments enfants) ; JSON est un arbre d'objets, de tableaux, de chaînes, de nombres, de booléens et de valeurs null. La conversion entre eux nécessite un ensemble de conventions pour combler cette inadéquation.

Cet outil utilise la convention la plus largement adoptée, la même que celle utilisée par des bibliothèques populaires comme fast-xml-parser (Node.js), xmltodict (Python) et JAXB (Java) :

**1. Attributs → préfixe @_.** Les attributs XML n'ont pas d'équivalent JSON direct. La convention est de les représenter comme des clés préfixées par @_. Ainsi devient { "@_id": "42", "@_role": "admin" } dans l'objet user. Ce préfixe est sans ambiguïté : aucun nom d'élément XML valide ne commence par @, il n'y a donc pas de collision avec les noms des éléments enfants.

**2. Contenu textuel avec attributs → #text.** Quand un élément a à la fois des attributs et du contenu textuel — 29.99 — le texte doit partager le même objet JSON que les attributs. La convention est de le stocker sous la clé #text, produisant { "@_currency": "USD", "#text": "29.99" }. Les éléments avec seulement du contenu textuel et sans attributs se convertissent en valeur de chaîne simple.

**3. Éléments frères répétés → tableaux.** XML permet plusieurs éléments enfants du même nom ; les objets JSON ne peuvent pas avoir de clés en double. La solution est de regrouper les frères du même nom dans un tableau. Un enfant devient un seul objet ; deux enfants ou plus deviennent un tableau d'objets. C'est le détail comportemental le plus important à comprendre : la forme JSON change selon le nombre de frères dans le XML.

**4. Aucune coercition de type — toutes les valeurs restent des chaînes.** XML n'a pas de système de type natif pour le contenu textuel. Une valeur "123" en XML est une chaîne. La convertir en nombre JSON 123 nécessite de formuler une hypothèse sur l'intention de l'auteur — une hypothèse incorrecte pour les codes postaux ("01234" → 1234), les numéros de téléphone, les identifiants avec remplissage et les chaînes décimales sensibles à la précision. Cet outil préserve toutes les valeurs comme des chaînes. Appliquez la coercition de type dans votre propre code pour les champs où vous connaissez le type.

**5. Avec perte pour les commentaires, instructions de traitement et espaces de noms.** XML prend en charge des fonctionnalités que JSON ne supporte pas : les commentaires (), les instructions de traitement (), et la sémantique des espaces de noms. Celles-ci sont supprimées ou approximées lors de la conversion. Pour un travail XML sans perte — reformatage, minification, validation — utilisez le Formateur XML à la place. Pour la conversion inverse — construire du XML à partir de JSON — utilisez le Convertisseur JSON vers XML.

**Pourquoi convertir du XML en JSON ?** JSON est le format natif de JavaScript et le format d'échange par défaut pour les API REST. Si vous recevez du XML d'un service SOAP hérité, d'un flux RSS, d'un sitemap ou d'un système d'entreprise, le convertir en JSON vous permet de travailler avec les données en utilisant l'accès aux objets JavaScript standard, les requêtes JSON path et tout magasin de données ou API compatible JSON. La conversion est un pont à sens unique : utile pour consommer des données XML dans une pile moderne, mais pas pour préserver ou faire des allers-retours avec des documents XML.

// Convert XML to JSON in Node.js using fast-xml-parser
import { XMLParser } from 'fast-xml-parser';

const xml = `<catalog>
  <product id="P01">
    <name>Wireless Headphones</name>
    <price currency="USD">79.99</price>
  </product>
</catalog>`;

const parser = new XMLParser({
  ignoreAttributes: false,      // preserve attributes
  attributeNamePrefix: '@_',    // @_ prefix for attributes
  textNodeName: '#text',        // #text for mixed element content
  parseAttributeValue: false,   // no type coercion on attributes
  parseTagValue: false,         // no type coercion on element text
});

const result = parser.parse(xml);
console.log(JSON.stringify(result, null, 2));
// {
//   "catalog": {
//     "product": {
//       "@_id": "P01",
//       "name": "Wireless Headphones",
//       "price": {
//         "@_currency": "USD",
//         "#text": "79.99"
//       }
//     }
//   }
// }

Fonctionnalités clés

Conversion en direct

La sortie JSON se met à jour instantanément au fil de la saisie ou du collage de XML — sans bouton Convertir. Les grandes entrées (>200 Ko) passent automatiquement en mode manuel pour maintenir la réactivité du navigateur.

Convention de préfixe @_ pour les attributs

Les attributs XML deviennent des clés JSON préfixées par @_, suivant la convention fast-xml-parser et xmltodict. devient { "@_attr": "val" } — sans ambiguïté et sans collision avec aucun nom d'élément valide.

Détection automatique des tableaux pour les éléments répétés

Les éléments frères du même nom deviennent automatiquement un tableau JSON. Un → objet ; deux éléments ou plus → tableau. Aucune configuration nécessaire — l'outil détecte automatiquement les répétitions.

Aucune coercition de type — les valeurs restent des chaînes

Toutes les valeurs XML sont préservées comme des chaînes JSON. Les zéros initiaux, les numéros de téléphone, les codes avec remplissage et les chaînes ressemblant à des booléens comme "true" ou "false" ne sont jamais silencieusement convertis en nombres ou booléens.

Confidentialité 100 % basée sur le navigateur

Toute la conversion s'exécute localement dans votre navigateur en JavaScript. Votre XML — dont les identifiants, les configurations internes et les charges utiles sensibles — n'est jamais envoyé à un serveur, jamais journalisé ni stocké.

Signalement des erreurs de bonne formation

Si votre XML n'est pas bien formé, l'outil signale le numéro de ligne et de colonne exact de la première erreur, vous permettant de localiser et corriger le problème immédiatement avant de convertir.

Exemples

Fichier de Configuration

<?xml version="1.0" encoding="UTF-8"?>
<appConfig version="2.1" env="production">
  <database>
    <host>db.example.com</host>
    <port>5432</port>
    <name>myapp_prod</name>
    <pool max="10" min="2"/>
  </database>
  <cache enabled="true">
    <ttl>3600</ttl>
    <driver>redis</driver>
  </cache>
</appConfig>

Une petite configuration d'application avec des attributs et des éléments imbriqués. Les attributs deviennent des clés préfixées par @_ dans la sortie JSON : version="2.1" devient "@_version": "2.1" sous appConfig, et les attributs max et min de l'élément pool deviennent "@_max": "10" et "@_min": "2". Toutes les valeurs — dont port et ttl — restent des chaînes, pas des nombres, car le convertisseur n'effectue aucune coercition de type.

Fragment de Sitemap

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://go-tools.org/tools/xml-to-json</loc>
    <lastmod>2026-05-29</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://go-tools.org/tools/json-to-xml</loc>
    <lastmod>2026-05-29</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>

Un fragment de sitemap.xml à deux URL. Comme il y a deux éléments frères sous , ils deviennent un tableau JSON. La déclaration d'espace de noms xmlns devient "@_xmlns" sur l'objet urlset. La valeur de priority "0.8" reste une chaîne — sans coercition numérique — ainsi les valeurs avec zéro initial comme "0.08" seraient également préservées exactement.

Élément RSS

<item>
  <title>XML to JSON: A Practical Guide</title>
  <link>https://go-tools.org/blog/xml-to-json-guide</link>
  <pubDate>Thu, 29 May 2026 00:00:00 GMT</pubDate>
  <category>Developer Tools</category>
  <description>Learn how XML attributes map to @_ keys, how repeated elements become arrays, and why values stay strings in any XML-to-JSON conversion.</description>
  <guid isPermaLink="true">https://go-tools.org/blog/xml-to-json-guide</guid>
</item>

Un élément RSS 2.0. L'élément guid possède un attribut isPermaLink, donc la sortie JSON pour guid devient un objet avec "@_isPermaLink": "true" et "#text": "https://go-tools.org/blog/xml-to-json-guide" — l'attribut et le contenu textuel de l'élément coexistent comme clés sœurs. Tous les autres éléments n'ont que du contenu textuel et se convertissent directement en valeurs de chaîne.

Comment utiliser

  1. 1

    Collez votre XML

    Saisissez ou collez votre XML dans le champ de saisie ci-dessus. Vous pouvez aussi cliquer sur « Charger un exemple » pour essayer un échantillon — un fichier de configuration, un fragment de sitemap ou un élément RSS.

  2. 2

    Consultez la sortie JSON en direct

    Le JSON apparaît instantanément dans le panneau de sortie. Les attributs deviennent des clés préfixées par @_, le contenu textuel des éléments mixtes devient #text, et les éléments frères répétés deviennent des tableaux. Ajustez l'indentation (2 ou 4 espaces) selon vos besoins.

  3. 3

    Copiez ou téléchargez

    Cliquez sur Copier pour récupérer le JSON dans votre presse-papiers, ou sur Télécharger pour le sauvegarder en fichier .json prêt pour votre application, API ou pipeline de données.

Pièges courants de conversion

Oublier que les valeurs restent des chaînes

Le convertisseur n'effectue aucune coercition de type. Si votre code cible attend des nombres JSON mais que le XML contient des chaînes numériques, vous devez les coercer explicitement après la conversion. Se fier à la coercition implicite chaîne-vers-nombre (l'opérateur == de JavaScript ou les opérateurs arithmétiques) est source d'erreurs — utilisez toujours parseInt(), parseFloat() ou Number() délibérément.

✗ Incorrect
// XML: <timeout>30</timeout>
// JSON output: { "timeout": "30" }  ← string, not number
// Dangerous: comparing as-is
if (config.timeout > 25) { ... }  // "30" > 25 coerces, but fragile
✓ Correct
// XML: <timeout>30</timeout>
// JSON output: { "timeout": "30" }
// Safe: explicit coercion where you know the type
if (parseInt(config.timeout, 10) > 25) { ... }

Inadéquation entre élément unique et forme tableau

Quand il n'y a qu'un seul élément , la sortie est un objet ; quand il y en a deux ou plus, ça devient un tableau. Le code consommateur qui utilise toujours result.items.forEach() plantera quand items est un seul objet. Normalisez toujours en tableau après la conversion si votre schéma permet un ou plusieurs éléments.

✗ Incorrect
// XML with one item: <root><item>a</item></root>
// JSON: { "root": { "item": "a" } }  ← string, not array
result.root.item.forEach(i => console.log(i));  // TypeError: not a function
✓ Correct
// Normalize to array regardless of count
const items = [].concat(result.root?.item ?? []);
items.forEach(i => console.log(i));  // safe for 0, 1, or many

Contenu mixte : texte et clé #text

Quand un élément a à la fois des attributs et du contenu textuel, le texte va sous #text. Accéder à la valeur textuelle comme si c'était une chaîne simple retournera un objet à la place. Vérifiez toujours si la valeur d'un élément est une chaîne ou un objet avec une clé #text quand des attributs sont possibles.

✗ Incorrect
// XML: <price currency="USD">29.99</price>
// JSON: { "price": { "@_currency": "USD", "#text": "29.99" } }
const amount = result.price;  // { "@_currency": "USD", "#text": "29.99" }, not "29.99"
✓ Correct
// Handle both plain string and @_/#text object
const raw = result.price;
const amount = typeof raw === 'object' ? raw['#text'] : raw;  // "29.99"

Entrée XML non bien formée

Le convertisseur requiert du XML bien formé. Causes courantes d'erreurs de bonne formation : & non échappé dans le contenu textuel (utilisez &), balises non correspondantes ( vs — XML est sensible à la casse), plusieurs éléments racines ou balises non fermées. Le message d'erreur indique la ligne et la colonne du premier problème.

✗ Incorrect
<!-- Unescaped & — well-formedness error -->
<query>name = 'Alice' & role = 'admin'</query>
✓ Correct
<!-- Escaped & — valid XML -->
<query>name = 'Alice' &amp; role = 'admin'</query>

Valeurs avec zéro initial corrompues par coercition

Cet outil préserve les zéros initiaux car il n'effectue aucune coercition de type. Si vous post-traitez le JSON avec une bibliothèque qui effectue de la coercition (certains validateurs de schéma JSON, mappeurs ORM), le zéro initial peut être perdu. Déclarez toujours le type du champ explicitement comme chaîne dans votre schéma.

✗ Incorrect
// XML: <zipCode>01234</zipCode>
// This tool outputs: { "zipCode": "01234" }  ← correct
// But if a downstream schema coerces:
// { zipCode: z.number() }  → 1234  ← leading zero lost
✓ Correct
// Declare ZIP codes and other padded identifiers as strings
// { zipCode: z.string() }  → "01234"  ← correct

Cas d'utilisation courants

Consommation d'APIs SOAP et XML héritées
Les services d'entreprise hérités (banque, assurance, logistique) exposent souvent des APIs SOAP qui retournent du XML. Convertissez la réponse en JSON pour travailler avec les données en utilisant les outils JavaScript modernes, les stocker dans une base de données documentaire ou les transmettre à un consommateur d'API REST.
Traitement des flux RSS et Atom
Les flux RSS 2.0 et Atom 1.0 sont du XML. Convertissez le XML du flux en JSON pour extraire les titres, les liens, les dates de publication et les descriptions pour les agrégateurs de flux, les pipelines de contenu et les systèmes de notification, sans dépendance à une bibliothèque d'analyse XML.
Analyse des fichiers Sitemap
Les fichiers sitemap.xml énumèrent les URL d'un site avec des métadonnées. Convertissez un sitemap en JSON pour analyser la couverture des URL, construire des files d'attente d'exploration, comparer les sitemaps entre environnements ou alimenter les URL dans un vérificateur de liens ou un outil d'audit SEO.
Transformation des fichiers de configuration
De nombreux systèmes d'entreprise (Spring, Maven, Ant, JBoss, Tomcat) utilisent des fichiers de configuration XML. Convertissez-les en JSON pour l'analyse, les scripts de migration, la génération de documentation ou l'importation dans des outils qui parlent nativement JSON.
Développement mobile et Android
Les ressources Android, les fichiers de mise en page et AndroidManifest.xml sont tous du XML. Convertissez-les en JSON pour les scripts d'analyse, l'audit automatisé ou la génération de documentation sur les permissions déclarées, les activités et les valeurs de ressources.
Migration de données et ETL
Les exports de données des systèmes d'entreprise (ERP, CRM, paie) arrivent souvent en XML. Convertissez en JSON comme première étape d'un pipeline ETL pour charger les données dans un magasin de données natif JSON comme MongoDB, Firestore ou une API REST.

Détails techniques

DOMParser du navigateur pour l'analyse XML
L'entrée XML est analysée avec le DOMParser natif du navigateur avec le type MIME 'text/xml' — le même moteur utilisé pour rendre SVG et XHTML. Il est entièrement conforme à XML 1.0 et signale les erreurs de bonne formation avec les informations de ligne et de colonne. Cette approche gère correctement les espaces de noms, les sections CDATA, les instructions de traitement et les références d'entité sans dépendance tierce.
Sérialisation DOM vers JSON récursive
Après l'analyse, l'outil parcourt l'arborescence DOM de manière récursive. Les nœuds éléments deviennent des objets JSON ; leurs attributs deviennent des clés préfixées par @_ ; les éléments ne contenant que du texte deviennent des valeurs de chaîne simples ; les éléments ayant à la fois des attributs et du contenu textuel obtiennent une clé #text pour le contenu textuel. Les éléments frères du même nom sont regroupés et émis comme tableau JSON. Les nœuds texte composés uniquement d'espaces entre les éléments sont ignorés.
Aucune coercition de type — Préservation des chaînes
Toutes les valeurs d'attributs et les contenus textuels sont écrits dans la sortie JSON comme des chaînes. Aucun parseInt, parseFloat ou analyse booléenne n'est appliqué. C'est un choix de conception délibéré pour éviter la corruption silencieuse des données pour les valeurs avec zéro initial, les décimales sensibles à la précision et les chaînes ressemblant à des booléens. La coercition de type, si nécessaire, doit être appliquée explicitement dans le code en aval.
100 % basé sur le navigateur — Aucun envoi, aucun serveur
Tout le traitement s'exécute dans le moteur JavaScript de votre navigateur. Aucune donnée n'est transmise sur le réseau à aucun moment. Les entrées de plus de 200 Ko passent automatiquement du mode en direct au mode manuel (nécessitant un clic explicite sur Convertir) pour maintenir la réactivité du navigateur et éviter le blocage du thread principal lors d'un parcours DOM intensif.

Bonnes pratiques

Validez d'abord la bonne formation XML
Si votre source XML est écrite à la main ou générée par un système qui produit parfois des sorties incorrectes, validez-la avant de convertir. Utilisez le bouton Valider du Formateur XML pour confirmer que le XML est bien formé et obtenir des localisations précises des erreurs pour tout problème.
Normalisez les champs un-ou-plusieurs en tableaux
Quand votre schéma XML permet un ou plusieurs éléments enfants du même nom, la sortie JSON sera un objet pour un élément et un tableau pour plusieurs. Normalisez toujours ces champs dans votre code consommateur : const items = [].concat(result.items ?? []) — c'est sûr pour zéro, un ou plusieurs éléments et empêche les TypeError.
Appliquez la coercition de type explicitement et sélectivement
Comme cet outil préserve toutes les valeurs comme des chaînes, appliquez la coercition de type délibérément dans votre code pour les champs spécifiques qui en ont besoin. Utiliser parseInt(val, 10) pour un champ entier connu est sûr. Appliquer la coercition largement avec Number(val) risque de corrompre les valeurs avec zéro initial, les chaînes vides et les décimales sensibles à la précision.
Vérifiez #text lors de l'accès aux valeurs d'éléments
Si un élément peut avoir des attributs dans certaines charges utiles et non dans d'autres, sa valeur JSON sera soit une chaîne simple (sans attributs) soit un objet avec des clés @_ et une clé #text (avec attributs). Écrivez des accesseurs robustes : const val = typeof node === 'object' ? node['#text'] : node. Ce modèle gère les deux formes et évite les valeurs undefined silencieuses.
Pour un travail XML sans perte, utilisez le Formateur XML
La conversion XML vers JSON supprime les commentaires, les instructions de traitement et la sémantique des espaces de noms. Si vous devez préserver tout le contenu XML exactement, utilisez le Formateur XML pour embellir, minifier et valider sans aucune perte. Convertissez en JSON uniquement quand vous devez travailler avec les données dans un contexte natif JSON.

Questions fréquentes

Mes données XML sont-elles envoyées à un serveur lorsque j'utilise cet outil ?
Non. Toute la conversion se passe entièrement dans votre navigateur en JavaScript. Votre XML n'est jamais transmis sur le réseau, jamais stocké sur un serveur, et jamais journalisé ni analysé. L'outil est ainsi sûr à utiliser avec des charges utiles XML contenant des identifiants d'API, des configurations de services internes, des jetons SOAP WS-Security, des données médicales HL7/FHIR ou tout autre contenu sensible. Vous pouvez le vérifier en ouvrant l'onglet Réseau de votre navigateur — vous verrez zéro requête déclenchée par le collage ou la conversion du XML.
Comment les attributs XML sont-ils représentés dans la sortie JSON ?
Les attributs XML deviennent des clés JSON préfixées par @_. Par exemple, produit un objet JSON contenant "@_id": "P01" et "@_category": "electronics" aux côtés des clés des éléments enfants. Quand un élément a à la fois des attributs et du contenu textuel — comme 29.99 — le contenu textuel est stocké sous la clé spéciale "#text", ainsi le résultat est { "@_currency": "USD", "#text": "29.99" }. Cette convention est cohérente et prévisible : @_ signifie toujours attribut, #text signifie toujours contenu textuel d'un élément.
Le convertisseur effectue-t-il une coercition de nombres ou de booléens ?
Non. Tout le contenu textuel XML et toutes les valeurs d'attributs deviennent des chaînes JSON, quelle que soit leur apparence. 42 devient "count": "42", pas 42. true devient "enabled": "true", pas true. C'est intentionnel et important : cela préserve les zéros initiaux (numéros de téléphone, codes de compte, codes postaux comme "01234"), la précision numérique pour des valeurs comme "0.100" et les valeurs de chaîne qui ressemblent à des booléens. Si vous avez besoin de nombres ou de booléens dans votre JSON cible, appliquez la coercition de type dans votre propre code après la conversion — là où vous contrôlez exactement quels champs sont coercés.
Comment les éléments répétés (de même nom en tant que frères) sont-ils gérés ?
Un seul élément enfant devient un objet JSON. Deux éléments enfants ou plus portant le même nom de balise sous le même parent deviennent un tableau JSON. Par exemple, a produit { "root": { "item": "a" } } — item est un objet (chaîne). Mais ab produit { "root": { "item": ["a", "b"] } } — item est un tableau. Cela signifie que la structure de votre sortie JSON dépend du nombre d'éléments frères dans le XML, ce qui est l'une des raisons pour lesquelles la conversion XML vers JSON est basée sur des conventions. Si votre schéma XML peut avoir un ou plusieurs éléments, votre code consommateur doit gérer les deux cas, objet et tableau.
La conversion XML vers JSON est-elle sans perte ?
Non. XML possède des fonctionnalités qui n'ont pas d'équivalent JSON et qui sont abandonnées lors de la conversion : les commentaires XML () sont supprimés, les instructions de traitement () sont supprimées, les liaisons de préfixes d'espaces de noms sont partiellement préservées comme attributs @_ mais leur sémantique ne l'est pas, et l'ordre relatif des nœuds à contenu mixte (texte entremêlé avec des éléments enfants) peut ne pas se conserver parfaitement. Pour du XML purement structurel sans commentaires ni instructions de traitement, la conversion préserve tous les noms d'éléments, noms d'attributs, valeurs d'attributs et contenu textuel. Pour un travail XML sans perte — formatage, validation ou inspection du XML sans aucune perte de données — utilisez le Formateur XML à la place.
Comment reconvertir du JSON en XML ?
Utilisez notre Convertisseur JSON vers XML compagnon. Il applique les mêmes conventions en sens inverse : les clés préfixées par @_ deviennent des attributs XML, les clés #text deviennent le contenu textuel des éléments, et les tableaux JSON deviennent des éléments frères répétés du même nom. Cela rend les deux outils symétriques pour les cas d'usage aller-retour.
Que se passe-t-il avec les espaces de noms XML ?
Les déclarations d'espaces de noms (xmlns="..." et xmlns:prefix="...") sont traitées comme des attributs ordinaires et apparaissent dans la sortie JSON comme clés @_xmlns et @_xmlns:prefix. Le préfixe d'espace de noms dans les noms d'éléments est préservé comme partie de la clé du nom d'élément (par exemple, devient "soap:Body" dans le JSON). La signification sémantique des espaces de noms — que deux préfixes pourraient pointer vers la même URI — n'est pas interprétée. Si la gestion précise des espaces de noms est importante pour votre cas d'usage, analysez le XML dans un analyseur conscient des espaces de noms plutôt que de le convertir en JSON.
Pourquoi 0123 devient-il "0123" et non 123 ?
Parce que le convertisseur n'effectue aucune coercition de type. La chaîne "0123" et le nombre 123 sont des valeurs différentes : "0123" a un zéro initial qui est significatif dans de nombreux contextes (codes de compte, codes postaux, numéros d'identification nationaux, identifiants avec remplissage). Supprimer silencieusement ce zéro initial corromprait les données. La valeur par défaut sûre est de préserver toutes les valeurs comme des chaînes exactement telles qu'elles apparaissent dans le XML. Appliquez l'analyse numérique de manière sélective dans votre propre code pour les champs spécifiques où vous savez que la valeur est toujours un entier simple.
Quelle est la différence entre cet outil et un formateur XML ?
Le Formateur XML reformate du XML — il change l'indentation et les espaces mais la sortie reste du XML. Ce Convertisseur XML vers JSON change entièrement le format : la sortie est un document JSON qui représente la structure XML en utilisant la convention d'attribut @_. Utilisez le formateur quand vous souhaitez lire, modifier, valider ou minifier du XML. Utilisez ce convertisseur quand vous devez travailler avec les données XML dans une application JavaScript, les envoyer à une API REST ou les stocker dans un magasin de documents JSON.
Y a-t-il une limite de taille ?
Il n'y a pas de limite stricte, mais les entrées de plus de 200 Ko passent automatiquement du mode en direct au mode manuel. En mode manuel, un bouton Convertir apparaît et la conversion ne s'exécute que lorsque vous cliquez dessus — cela maintient la réactivité du navigateur lors de l'analyse de grands documents XML. Pour les très grands fichiers XML (exports de données de plusieurs mégaoctets), envisagez des outils en ligne de commande pour de meilleures performances : python3 -c "import sys, xmltodict, json; print(json.dumps(xmltodict.parse(sys.stdin.read()), indent=2))" ou node -e avec une bibliothèque XML vers JSON dédiée.
Le convertisseur gère-t-il les sections CDATA ?
Oui. Le contenu des sections CDATA () est traité comme le contenu textuel d'un élément et apparaît comme une valeur de chaîne simple dans la sortie JSON. Les délimiteurs CDATA eux-mêmes sont supprimés — seul le contenu intérieur est préservé. Par exemple, produit "note": "if (a < b) return;" en JSON. C'est le comportement correct : CDATA n'est qu'un moyen d'intégrer du texte avec des caractères spéciaux sans les échapper ; la signification sémantique est le contenu textuel.
Puis-je convertir du XML avec plusieurs éléments racines ?
Non. Le XML avec plusieurs éléments racines n'est pas bien formé, et cet outil requiert un XML bien formé en entrée. Si votre analyseur XML vous donne plusieurs éléments racines (courant lors de l'assemblage de fragments XML), enveloppez-les dans un seul élément racine avant de convertir. Par exemple, si vous avez , convertissez-le comme . Le message d'erreur indiquera la position du problème de bonne formation pour que vous puissiez le corriger rapidement.