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 namedonnefirst_name,a+bdonnea_b; - un nom commençant par quelque chose que XML refuse est préfixé, non tronqué :
2coldonne_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.