Como posso converter um arquivo CSV para XML?
Existe algum software para o Ubuntu?
conversion
xml
csv
Vitor Mazuco
fonte
fonte
Respostas:
No site da comunidade sobre conversão, há um link para uma ferramenta de linha de comando chamada csv2xml . Como não é mantido, convém escolher outra opção.
Também há menção de uma ferramenta java chamada csv2xml (aviso: o site está em alemão) e uma ferramenta de linha de comando chamada ff-extractor .
O link também tem referências a Python, Perl, PHP, XSLT, mas isso significa que você precisa codificar o conversor.
fonte
Quando você conhece o formato do
csv
arquivo e a estrutura necessária noxml
arquivo, é bastante simples criar um script que possa lidar com a conversão.Pegue o arquivo
simple.csv
:Você pode criar o seguinte
xml
arquivo:Com o seguinte script:
Mesmo que você nunca tenha codificado antes, acho que isso deve ser fácil de usar e modificar. O arquivo é lido linha por linha no
while
loop.IFS
é o especificador de campo interno. OIFS=$','
declara que o valor do separador de campos é uma vírgula. Isso é padrão para um arquivo CSV, mas pode ser alterado conforme necessário para corresponder ao formato do arquivo de entrada.O
-r
argumento para oread
comando diz para tratar qualquer barra invertida em seu arquivo como parte de seus dados, e não como uma fuga para o seguinte caractere especial.O
-a arry
argumento coloca cada coluna do seu arquivo em uma matriz (nomeadaarry
). As colunas neste exemplo são nome, idade, país. Em outras palavras, os valores entre as vírgulas. Portanto, cada coluna na linha é armazenada em uma matriz.Em seguida, o texto necessário
xml
é apenas contornado os valores e axml
linha é anexada ao arquivo de saída comecho
.fonte
while IFS=$',' read -r -a arry
, é útil para outra. Obrigado."Somename, Jack"
lugar deJack
no arquivo de entrada?Uma solução bastante amigável (ou seja, fácil para quem gosta de coisas como eu) para o desafio de conversão de CSV para XML é usar um bom editor XML de plataforma cruzada que possui esse recurso embutido. (Eu o usei no Ubuntu e no Mac OSX 10.10.5; ele também tem o Windows executável.)
XMLSpear
Como mencionado, é um editor XML, mas inclui "importação" de CSV para XML (e Excel para XML) em seu menu principal:
Ele converteu um arquivo CSV de 31Mb para mim (um despejo de um banco de dados da biblioteca de 20.000 entradas) em cerca de 15 segundos, fornecendo um arquivo XML bem formado para salvar e manipular.
Como editor, ele tem muitos outros recursos de boas-vindas (detalhados no link acima). Não consigo encontrar menção a nenhuma licença, mas isso está incluído no "README":
O leia-me também inclui o conteúdo de um arquivo .desktop.
Faz o trabalho bem para mim no Ubuntu 18.04 LTS (Gnome).
fonte
Sou um grande fã do
BaseX
qual parece ter uma capacidade de importação:http://docs.basex.org/wiki/CSV_Module
Pode-se destacar que é aparentemente mais fácil usar um aplicativo da Web:
https://webapps.stackexchange.com/q/123959/24327
O que equivale a um plug-in ou extensão ao navegador que funciona com as folhas do Google.
Sinto sua dor porque é um utilitário aparentemente simples que deve estar disponível no apt.
fonte
Eu sugiro que você ou alguém escreva códigos em Python. Python é fácil de aprender e resolver seu problema facilmente. Possui módulos CSV e XML . Minha sugestão leva em consideração que talvez você precise ter seus próprios nomes para elementos XML ou outros requisitos complexos (como converter a última coluna CSV em atributo da última, mas uma coluna).
Há toneladas de tutoriais online sobre Python.
fonte