Convertisseur XML → CSV, gratuit

Convertissez des données XML au format CSV avec détection automatique.

Aucune donnée ne quitte votre appareil

Comment utiliser

  1. Collez ou tapez vos données XML dans la zone de gauche.
  2. L'outil détecte automatiquement les éléments qui se répètent et aplatit les structures imbriquées.
  3. Prévisualisez vos données à droite. Cliquez sur Télécharger le CSV pour enregistrer le fichier converti.

Questions fréquentes

Comment les éléments imbriqués sont-ils gérés ?

Les éléments imbriqués sont aplatis avec la notation à points. Par exemple, « person.address.city » devient un seul en-tête de colonne.

Et si les éléments ont un nombre d'enfants différent ?

Les valeurs manquantes sont laissées vides dans la sortie CSV. Tous les en-têtes de colonnes sont préservés même si certaines lignes n'ont pas certaines valeurs.

Comment l'outil détecte-t-il les éléments qui se répètent ?

L'outil identifie automatiquement le type d'élément le plus fréquent dans votre XML et l'utilise comme source de lignes.

Pourquoi la conversion XML vers CSV revient si souvent

Le XML est verbeux et hiérarchique ; le CSV est plat et dense. Beaucoup de données utiles du monde réel vivent en XML : sitemap.xml, flux RSS / Atom, fichiers d'export WordPress, configurations plist d'Apple, listes de dépendances Maven pom.xml, traces GPS (GPX), repères Google Earth (KML), formats de relevés bancaires (CAMT.053, MT940 sous forme XML), flux de produits e-commerce, HL7 v3 en santé, rapports financiers en XBRL, partitions musicales en MusicXML, et presque aucune d'elles ne peut être analysée sans être d'abord aplatie en lignes. Excel, Google Sheets, le LOAD DATA SQL, Pandas, R, Tableau, Power BI consomment tous le CSV d'emblée ; faire entrer votre XML dans l'un de ces outils implique de le convertir d'abord.

L'inadéquation fondamentale

Le XML autorise une imbrication arbitraire ; le CSV est bidimensionnel. Il n'existe pas de correspondance XML → CSV générique et sans perte. Tout convertisseur doit faire des hypothèses sur le niveau de l'arbre qui représente les « lignes » et sur la façon de gérer une imbrication plus profonde. Les deux formes courantes :

L'outil détecte automatiquement l'élément répété en trouvant l'enfant direct le plus fréquent de la racine, ce qui est correct pour ~90 % des vrais flux XML. Si votre XML ne correspond pas à ce schéma, prétraitez-le d'abord avec un petit script XPath ou modifiez-le à la main pour obtenir une forme à enregistrements répétés.

Flux XML courants qui se convertissent bien

Comment les attributs, l'imbrication et les enfants répétés sont gérés

Encodage : le piège d'Excel

Le XML déclare son encodage via <?xml version="1.0" encoding="UTF-8"?>. Le CSV n'a pas de déclaration d'encodage ; le logiciel qui le lit devine. Excel sous Windows utilise Windows-1252 par défaut, de sorte qu'ouvrir un CSV UTF-8 sans marque d'ordre des octets (BOM) affiche du charabia (é devient é, ü devient ü). La solution : soit enregistrer le CSV avec un BOM UTF-8 () au début, soit utiliser l'assistant d'importation Données → À partir d'un fichier texte/CSV d'Excel en sélectionnant explicitement UTF-8, soit ouvrir le fichier dans Google Sheets, qui gère correctement l'UTF-8 sans BOM.

Choix du délimiteur

Selon la RFC 4180, le délimiteur CSV canonique est la virgule. L'outil prend aussi en charge le point-virgule, la tabulation et la barre verticale : choisissez celui qui convient à votre public :

Selon la RFC 4180, les champs contenant le délimiteur choisi, des sauts de ligne ou des guillemets droits sont automatiquement entourés de guillemets droits ; les guillemets droits internes sont échappés en les doublant. Les mêmes règles de mise entre guillemets s'appliquent quel que soit le délimiteur choisi.

Confidentialité

Les charges utiles XML contiennent souvent des informations confidentielles : transactions de relevés bancaires, données internes d'employés, sitemaps récupérés révélant des URL internes, dossiers de santé, catalogues de produits sous NDA. Le DOMParser intégré du navigateur s'exécute entièrement dans votre onglet : pas de requête réseau, pas d'aller-retour serveur, pas d'entrée de journal. Les données passent de votre presse-papiers à un arbre analysé en mémoire, sont parcourues une fois pour l'aplatissement, et le résultat arrive dans la zone de texte de sortie. Si vous ne cliquez pas sur Télécharger, rien n'est même écrit sur le disque.

Erreurs fréquentes

  1. Coller du XML qui n'a pas la forme d'enregistrements répétés. Un document comme un fichier de configuration unique sans répétition ne s'aplatira pas en un CSV utilisable. Le convertisseur est conçu pour du XML de type « liste d'éléments similaires ».
  2. S'attendre à ce que les préfixes d'attributs fassent l'aller-retour. <product id="42"> devient une colonne appelée id, et non product@id ni product.id. Si vous réimportez le CSV ailleurs en tant que XML, vous devrez refaire la correspondance.
  3. Mauvais délimiteur pour le public. Un CSV à virgules ouvert dans une installation Excel française peut se réduire à une seule colonne. Adaptez le délimiteur à l'endroit où le fichier finira.
  4. Oublier le BOM UTF-8 pour Excel. Les caractères non latins ont l'air cassés dans Excel sous Windows sans le BOM. Soit ajoutez-le, soit ouvrez plutôt le fichier dans Google Sheets / Excel pour le web.
  5. Essayer de convertir du XHTML ou du DocBook. Le XML de document à contenu mixte ne s'aplatit pas proprement : utilisez un véritable pipeline XML/XSLT pour cela, pas un convertisseur tabulaire.
  6. Risque d'injection CSV préexistant dans les valeurs de champ. Si votre XML contient du texte généré par les utilisateurs et que vous allez ouvrir la sortie dans Excel ou Sheets, les cellules commençant par =, +, - ou @ sont interprétées comme des formules. L'OWASP documente cela comme une véritable classe d'attaque : assainissez avant de partager des exports de contenu généré par les utilisateurs.
  7. Les éléments enfants répétés. Si le XML a des conteneurs <tags> avec plusieurs enfants <tag>, la sortie plate ne peut pas représenter cela proprement. Soit aplatissez en une ligne par balise (avec les champs parents répétés), soit prétraitez le XML pour intégrer les balises sous forme de chaîne délimitée.

Autres questions fréquentes

L'outil validera-t-il mon XML par rapport à un schéma ?

Non. Il vérifie uniquement la bonne formation, à l'aide du DOMParser intégré du navigateur. Si vous avez besoin d'une validation XSD ou RELAX NG, utilisez un outil dédié comme xmllint, Saxon ou le validateur de schéma XML du W3C : la bonne formation suffit pour un aplatissement sûr en CSV.

Quelle taille mon XML peut-il faire ?

Tout ce que votre navigateur peut contenir. Il n'y a pas de limite côté serveur, car aucun serveur n'est impliqué. Des dizaines de mégaoctets se convertissent en une seconde ou deux sur un appareil moderne. Si vous avez des centaines de mégaoctets de XML, découpez-le en lots avant de convertir ; faire passer le tout par un seul onglet de navigateur peut atteindre les limites de mémoire.

L'outil gère-t-il les espaces de noms XML ?

Oui, les éléments avec espace de noms comme <atom:link> sont reconnus et le préfixe est préservé dans le nom de colonne. Si vous ne voulez pas du préfixe dans vos en-têtes CSV, lancez un petit rechercher-remplacer sur la sortie pour les supprimer.

Mon XML est-il téléversé quelque part ?

Non. Toute l'analyse et l'aplatissement se font dans votre navigateur via le DOMParser intégré. Le contenu de la zone de texte n'est jamais transmis, journalisé ou stocké. Une fois l'onglet fermé, les données ont disparu.

Quelle est la différence entre cet outil et l'outil JSON vers CSV ?

Même objectif (aplatir des données hiérarchiques en lignes), mais des formats d'entrée différents. Le XML est plus verbeux, autorise les attributs, possède des espaces de noms et utilise des références d'entités pour les caractères spéciaux. Le convertisseur XML vers CSV gère ces fonctionnalités spécifiquement ; le convertisseur JSON vers CSV attend une entrée de type tableau d'objets. Si vous avez du JSON, utilisez plutôt cet outil-là ; si vous avez du XML, celui-ci vous donnera un résultat plus propre.

Puis-je obtenir la conversion inverse (CSV vers XML) ?

Pas avec cet outil, mais l'inverse est généralement plus facile : choisissez un nom d'élément de ligne, encapsulez chaque ligne et convertissez chaque colonne en élément enfant. Un petit script Python ou Node avec csv + xml.etree s'en charge en 20 lignes. Ou utilisez un outil de données structurées comme Power Query d'Excel, qui peut réexporter le CSV en XML avec un schéma choisi.

Outils associés

Convertisseur JSON → CSV, gratuit Convertisseur JSON → YAML, gratuit Visualiseur de tableur, gratuit