Comment convertir un fichier CSV en XML?
Existe-t-il un logiciel pour Ubuntu?
conversion
xml
csv
Vitor Mazuco
la source
la source
Réponses:
Sur le site Web de la communauté sur la conversion, il existe un lien vers un outil en ligne de commande appelé csv2xml . Comme il n'est pas entretenu, vous pouvez choisir une autre option.
Il est également fait mention d'un outil java appelé csv2xml (avertissement: le site Web est en allemand) et d'un outil en ligne de commande appelé ff-extractor .
Le lien contient également des références à Python, Perl, PHP, XSLT mais cela signifie que vous devez coder le convertisseur vous-même.
la source
Lorsque vous connaissez le format du
csv
fichier et la structure dont vous avez besoin dans lexml
fichier, il est assez simple de créer un script capable de gérer la conversion.Prenez le fichier
simple.csv
:Vous pouvez créer le
xml
fichier suivant :Avec le script suivant:
Même si vous n'avez jamais codé auparavant, je pense que cela devrait être facile à utiliser et à modifier. Le fichier est lu ligne par ligne dans la
while
boucle.IFS
est le spécificateur de champ interne. LeIFS=$','
déclare que la valeur du séparateur de champ est une virgule. Ceci est standard pour un fichier CSV, mais il peut être modifié selon les besoins pour correspondre au format de fichier d'entrée.L'
-r
argument de laread
commande lui indique de traiter toutes les barres obliques inverses dans votre fichier comme faisant partie de vos données plutôt que comme un échappement pour un caractère spécial suivant.L'
-a arry
argument place chaque colonne de votre fichier dans un tableau (nomméarry
). Les colonnes de cet exemple sont le nom, l'âge, le pays. En d'autres termes, les valeurs entre les virgules. Ainsi, chaque colonne de la ligne est stockée dans un tableau.Ensuite, le texte nécessaire pour
xml
est simplement enroulé autour des valeurs et laxml
ligne est ajoutée au fichier de sortie avececho
.la source
while IFS=$',' read -r -a arry
, elle est utile pour une autre. Merci."Somename, Jack"
place deJack
dans le fichier d'entrée?Une solution assez conviviale (c'est-à-dire facile à utiliser pour moi) au défi de conversion CSV en XML consiste à utiliser un bel éditeur XML multiplateforme qui intègre cette fonctionnalité. (Je l'ai utilisé à la fois sous Ubuntu et Mac OSX 10.10.5; il a également un exécutable Windows.)
XMLSpear
Comme mentionné, il s'agit d'un éditeur XML, mais il inclut une "importation" CSV vers XML (et Excel vers XML) dans son menu principal:
Il m'a converti un fichier CSV de 31 Mo (un vidage à partir d'une base de données de bibliothèque de 20 000 entrées) en environ 15 secondes, me donnant un fichier XML bien formé à enregistrer et à manipuler.
En tant qu'éditeur, il possède de nombreuses autres fonctionnalités de bienvenue (détaillées sur le lien ci-dessus). Je ne trouve aucune mention de licence pour cela, mais cela est inclus dans le "README":
Le fichier Lisez-moi inclut également le contenu d'un fichier .desktop.
Fait bien le travail pour moi sous Ubuntu 18.04 LTS (Gnome).
la source
Je suis un grand fan de
BaseX
ce qui semble avoir une capacité d'importation:http://docs.basex.org/wiki/CSV_Module
Pourrait souligner qu'il est, apparemment, plus facile d'utiliser une application Web:
https://webapps.stackexchange.com/q/123959/24327
Ce qui revient à un plugin ou une extension pour le navigateur qui fonctionne avec les feuilles de Google.
Je ressens votre douleur parce que c'est un utilitaire apparemment simple qui devrait être disponible via apt.
la source
Je suggérerais à vous ou à quelqu'un d'écrire des codes en Python. Python est facile à apprendre et à résoudre facilement votre problème. Il possède à la fois un module CSV et des modules XML . Ma suggestion prend en considération que vous pourriez avoir besoin d'avoir vos propres noms pour les éléments XML ou avoir d'autres exigences complexes (comme la conversion de la dernière colonne CSV en attribut de la dernière mais une seule colonne).
Il existe des tonnes de tutoriels en ligne sur Python.
la source