100 % local — vos données ne quittent jamais votre navigateur

CSV en XML — un document qui s’analyse

Convertissez un tableau CSV en XML, un élément par colonne. Les noms d’en-tête deviennent des balises légales et le document s’ouvre dans tout outil XML.

Instantané Privé Zéro cookie
Indentation
Délimiteur

Entrée CSV

Sortie XML

Ce que fait cet outil

Chaque ligne du CSV devient un élément row dans un document rows, et chaque colonne un élément enfant nommé d’après son en-tête. Les valeurs sont échappées comme XML l’exige : l’esperluette devient &, les chevrons deviennent < et >.

Vous choisissez l’indentation, la détection des types, et la présence de la déclaration XML en tête.

Les noms de colonnes ne sont pas libres

Un nom d’élément XML obéit à des règles, un en-tête de tableur non. Un nom ne peut contenir d’espace, ne peut commencer par un chiffre, et ne peut contenir la plupart des signes de ponctuation — autant de choses ordinaires dans une ligne d’en-tête exportée.

Les noms d’en-tête sont donc ajustés plutôt que recopiés :

  • un caractère interdit devient un souligné : first name donne first_name, a+b donne a_b ;
  • un nom commençant par quelque chose que XML refuse est préfixé, non tronqué : 2col donne _2col, on sait donc encore de quelle colonne il s’agit ;
  • les lettres que XML autorise sont laissées telles quelles, accents et idéogrammes compris — café et 日本語 passent inchangés.

L’autre option serait d’émettre l’en-tête verbatim et de vous rendre un fichier qui a l’air converti et échoue à la première analyse. Cet échec survient loin de sa cause, et c’est ce qui le rend coûteux.

En-têtes dupliqués

Deux colonnes portant le même nom sont séparées avant d’atteindre le XML : la seconde devient a_1. Aucune colonne n’est silencieusement fondue dans une autre. Il en va de même quand deux en-têtes différents se réduisent au même nom : user id et user_id donnent tous deux user_id, le second devient donc user_id_1. Sans cela, l’une des deux colonnes disparaîtrait du document, valeur comprise.

Confidentiel par conception

Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.

Questions fréquentes

Pourquoi ma colonne « first name » est-elle devenue first_name ?
Parce qu’un nom d’élément XML ne peut pas contenir d’espace. Le laisser produirait un document qu’aucun analyseur n’accepte, et l’erreur n’apparaîtrait qu’à la lecture du fichier, pas à la conversion.
Pourquoi une colonne nommée 2col reçoit-elle un souligné ?
Parce qu’un nom XML ne peut pas commencer par un chiffre. Le préfixe garde le nom entier lisible : vous obtenez `_2col`, et non un `col` tronqué qui perdrait de quelle colonne il s’agissait.
Les noms accentués ou en idéogrammes sont-ils modifiés ?
Non. Les règles de nommage XML autorisent une large part de l’Unicode : `café`, `nom-composé` et `日本語` passent inchangés. Seuls les caractères que XML interdit réellement sont remplacés.

Convertisseurs associés