CodeKitHub
Outils JSON

Convertisseur CSV vers XML

Dernière mise à jour:

Pour convertir du CSV en XML, chaque ligne devient un élément <row> et chaque colonne devient une balise enfant nommée d'après son en-tête — la conversion inverse extrait une colonne par nom de balise enfant distinct trouvé dans le XML. Chaque ligne CSV devient un élément <row> avec une balise enfant par colonne ; l'entrée XML est reconvertie en colonnes à l'aide de l'analyseur XML propre au navigateur. Tout s'exécute localement, si bien que vos données ne quittent jamais votre appareil.

En quoi consiste cet outil ?

Certains systèmes (logiciels d'entreprise anciens, certaines API basées sur SOAP, flux proches du RSS) attendent des données au format XML, tandis que les tableurs et la plupart des outils d'import de données attendent du CSV. Cet outil déplace les données entre les deux formats : CSV → XML enveloppe chaque ligne dans un élément <row> à l'intérieur d'un élément racine <rows>, chaque colonne devenant une balise enfant nommée d'après l'en-tête ; XML → CSV fait l'inverse, en extrayant une colonne par nom de balise enfant distinct trouvé.

Le côté CSV est analysé avec un analyseur de champs entre guillemets adapté (pas une simple séparation sur les virgules), si bien que les valeurs contenant des virgules, des sauts de ligne ou des guillemets intégrés sont gérées correctement. Le côté XML est analysé à l'aide de l'API native DOMParser du navigateur — la même interface que les navigateurs utilisent en interne pour analyser les documents XML — plutôt qu'un lecteur artisanal basé sur des expressions régulières, si bien que les balises imbriquées et l'échappement XML standard sont traités comme le ferait un véritable analyseur XML.

Les noms de colonnes/balises qui ne sont pas des noms d'éléments XML valides (contenant des espaces, commençant par un chiffre, etc.) sont automatiquement nettoyés lors de la génération du XML, car les noms d'éléments XML obéissent à des règles plus strictes que les en-têtes CSV.

Source : l'analyse du CSV suit la RFC 4180 ; la structure XML suit la spécification W3C XML 1.0.

Pourquoi l'utiliser ?

  • Fonctionne dans les deux sens — CSV vers XML et XML vers CSV, dans un seul outil.
  • Analyse CSV correcte — gère les champs entre guillemets avec virgules, sauts de ligne et guillemets échappés, pas seulement une simple séparation sur les virgules.
  • Analyse XML basée sur les standards — XML → CSV utilise le DOMParser natif du navigateur plutôt qu'un analyseur regex personnalisé, si bien qu'un XML mal formé est signalé comme une erreur au lieu de produire silencieusement n'importe quoi.
  • Échappement XML automatique — les caractères spéciaux comme & et < dans vos valeurs CSV sont correctement échappés lors de la génération du XML.
  • 100 % côté client — rien de ce que vous collez ici n'est téléchargé vers un serveur.

Mode d'emploi

  1. Collez des données CSV (avec une ligne d'en-tête) ou des données XML dans la zone de texte.
  2. Cliquez sur « CSV → XML » pour générer du XML, ou sur « XML → CSV » pour reconvertir le XML en tableau.
  3. Vérifiez le résultat — copiez-le ou téléchargez-le sous forme de fichier.
  4. Pour CSV → XML, chaque ligne devient un élément <row> avec une balise par colonne, le tout enveloppé dans une racine <rows>.

Exemple

Entrée

name,age
Alice,30
Bob,25

Résultat

<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <name>Alice</name>
    <age>30</age>
  </row>
  <row>
    <name>Bob</name>
    <age>25</age>
  </row>
</rows>

Chaque ligne CSV devient un élément <row>, et chaque colonne une balise enfant nommée d'après l'en-tête — repasser ce XML par « XML → CSV » reconstruit le tableau original à deux colonnes.

Conseils pratiques

  • Alimenter un système hérité ou une API SOAP qui attend du XML : convertissez d'abord votre export CSV ici, puis collez directement le XML obtenu dans le système cible.
  • Auditer un export XML que vous avez reçu : exécutez XML → CSV pour obtenir rapidement une vue tabulaire lisible sans avoir besoin d'un éditeur XML complet.
  • Si votre XML utilise des éléments profondément imbriqués plutôt qu'une structure plate <row><colonne>, cet outil n'aplatira pas un niveau d'imbrication arbitraire — il attend un seul niveau d'éléments de ligne, chacun contenant des éléments de colonne simples.

Pourquoi DOMParser plutôt qu'un lecteur XML artisanal

Le XML possède de véritables règles structurelles — éléments imbriqués, guillemets d'attributs, échappement de caractères pour &, <, >, etc. — qu'un analyseur rapide basé sur des expressions régulières a tendance à mal gérer subtilement dès que l'entrée n'est plus la plus simple qui soit. Utiliser l'API native DOMParser du navigateur signifie que cet outil s'appuie sur le même moteur XML conforme aux standards que le navigateur utilise lui-même pour afficher les documents XML, plutôt que de réimplémenter l'analyse XML à partir de zéro. Cela signifie également qu'un XML mal formé — une balise non fermée, un chevron isolé — se traduit par une erreur d'analyse claire plutôt que par un CSV corrompu ou incomplet produit silencieusement.

Foire aux questions

Cela gère-t-il correctement les valeurs CSV contenant des virgules ou des guillemets ?

Oui. L'analyseur CSV est un véritable analyseur à machine à états qui suit s'il se trouve à l'intérieur d'un champ entre guillemets, si bien que les virgules et les sauts de ligne à l'intérieur des guillemets (par ex. « Smith, John ») ainsi que les guillemets doublés utilisés pour échapper un caractère guillemet littéral sont tous correctement gérés — il ne se contente pas de séparer sur chaque virgule.

Comment le XML est-il analysé — s'agit-il d'un analyseur regex personnalisé ?

Non. XML → CSV utilise l'API native DOMParser du navigateur pour analyser le XML en un véritable arbre de document, de la même façon que le navigateur analyse n'importe quel document XML. Cela signifie qu'un XML mal formé est détecté et signalé comme une erreur, plutôt que de produire silencieusement une sortie incorrecte comme pourrait le faire un analyseur regex artisanal.

Qu'advient-il des noms de colonnes qui ne sont pas des balises XML valides ?

Tout ce qui n'est pas une lettre, un chiffre, un tiret bas, un trait d'union ou un point est remplacé par un tiret bas, et un tiret bas initial est ajouté si le nom devait sinon commencer par un chiffre ou de la ponctuation — car les noms d'éléments XML ne peuvent pas commencer par un nombre ni contenir d'espaces, contrairement à un en-tête CSV.

Mes données sont-elles téléchargées vers un serveur ?

Non. Les deux sens de conversion s'exécutent entièrement en JavaScript dans votre navigateur, en utilisant le propre moteur d'analyse XML du navigateur — rien n'est envoyé où que ce soit, ce qui rend son utilisation sûre avec des données d'entreprise ou clients exportées.

Convertir CSV → XML → CSV me redonnera-t-il exactement ce que j'ai saisi ?

Pour un CSV bien formé avec un ensemble de colonnes cohérent, oui — l'aller-retour préserve les valeurs. Si votre CSV d'origine avait des colonnes incohérentes entre les lignes ou des caractères inhabituels dans les noms d'en-tête, les noms de balises nettoyés peuvent ne pas préserver parfaitement l'orthographe exacte de l'en-tête, bien que les valeurs des données, elles, le seront.

Outils associés