Convertisseur XML → CSV, gratuit
Convertissez des données XML au format CSV avec détection automatique.
Comment utiliser
- Collez ou tapez vos données XML dans la zone de gauche.
- L'outil détecte automatiquement les éléments qui se répètent et aplatit les structures imbriquées.
- 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 :
- Format à enregistrements répétés (le cas facile). Un élément racine contenant de nombreux enfants, chacun de la même forme.
<catalog><book>…</book><book>…</book></catalog>. Chaque<book>devient une ligne ; ses éléments feuilles deviennent des colonnes. C'est ce que le convertisseur recherche et gère proprement. - Format de document à contenu mixte. Du texte courant avec du balisage intégré, comme XHTML ou DocBook. Il n'y a pas de correspondance CSV propre pour cela : généralement sérialisé en une seule cellule de chaîne, ou rejeté.
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
- sitemap.xml : chaque entrée
<url>devient une ligne avec les colonnesloc,lastmod,changefreq,priority. Utile pour les audits SEO et les inventaires de contenu. - Flux RSS / Atom : chaque
<item>ou<entry>devient une ligne. Utile pour l'analyse du marketing de contenu ou la migration vers une autre plateforme. - Export XML WordPress (WXR) : des balises
<item>pour les articles, les pages, les pièces jointes. Courant lors d'une migration vers Substack, Ghost ou des générateurs de sites statiques. - GPX (GPS Exchange Format), les points de trace
<trkpt>aveclat,lon,ele,timedeviennent des lignes. Utile pour l'analyse d'itinéraires. - KML (Google Earth), des entrées
<Placemark>avec noms, descriptions, coordonnées. - XML plist iTunes / Apple sous forme d'enregistrements répétés, entrées de liste de lecture, métadonnées d'application.
- XML de relevés bancaires OFX / QFX / CAMT : les transactions deviennent des lignes pour les imports comptables.
- Flux de catalogues de produits : de nombreuses plateformes e-commerce fournissent des flux XML avec des éléments répétés
<product>pour les soumissions aux comparateurs de prix (CSE).
Comment les attributs, l'imbrication et les enfants répétés sont gérés
- Les attributs comme
<book id="42">sont aplatis en colonnes. Le convertisseur utilise le nom de l'attribut directement comme en-tête de colonne (id) lorsqu'il n'est pas ambigu. - Les éléments imbriqués sont aplatis avec la notation à points :
<person><address><street>Main</street><city>NYC</city></address></person>produit les colonnesaddress.streetetaddress.city. C'est la même convention que celle utilisée parjson_normalizede Pandas pour le JSON imbriqué. - Les éléments enfants répétés comme
<tags><tag>a</tag><tag>b</tag></tags>peuvent poser problème : il n'y a pas de représentation plate évidente. Prétraitez si vous avez besoin d'une sortie une-colonne-par-balise ou une-ligne-par-balise. - Les cinq références d'entités prédéfinies (
&,<,>,',") sont déséchappées lors de la conversion, de sorte queTom & Jerryen XML devientTom & Jerrydans la cellule CSV. - Les sections CDATA sont déballées : le contenu devient la valeur de la cellule tel quel.
- Les commentaires et les instructions de traitement sont supprimés ; le CSV n'a pas d'équivalent.
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 :
- Virgule : par défaut. Excel la lit lorsque le paramètre régional de l'OS est l'anglais. Sûr pour la plupart des cas d'usage.
- Point-virgule : préféré en Europe continentale et en Amérique latine, où la virgule est le séparateur décimal. Excel utilise le séparateur de liste de l'OS, de sorte qu'un Excel en paramètres régionaux français ou allemands produit un CSV délimité par des points-virgules.
- Tabulation : utile lorsque les champs contiennent des virgules (adresses, texte libre). Courant dans les données scientifiques.
- Barre verticale : se rabat sur un délimiteur rare dans toute donnée naturelle. Utilisé dans certains systèmes d'entreprise hérités où les données peuvent contenir des virgules, des points-virgules ET des tabulations.
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
- 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 ».
- S'attendre à ce que les préfixes d'attributs fassent l'aller-retour.
<product id="42">devient une colonne appeléeid, et nonproduct@idniproduct.id. Si vous réimportez le CSV ailleurs en tant que XML, vous devrez refaire la correspondance. - 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.
- 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.
- 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.
- 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. - 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.