¿Cómo puedo convertir un archivo CSV a XML?
¿Hay algún software para Ubuntu?
conversion
xml
csv
Vitor Mazuco
fuente
fuente
Respuestas:
En el sitio web de la comunidad sobre la conversión hay un enlace a una herramienta de línea de comandos llamada csv2xml . Como no se mantiene, es posible que desee elegir otra opción.
También se menciona una herramienta de Java llamada csv2xml (advertencia: el sitio web está en alemán) y una herramienta de línea de comandos llamada ff-extractor .
El enlace también tiene referencias a Python, Perl, PHP, XSLT, pero eso significa que debe codificar el convertidor usted mismo.
fuente
Cuando conoce el formato del
csv
archivo y la estructura que necesita en elxml
archivo, es bastante sencillo crear un script que pueda manejar la conversión.Toma el archivo
simple.csv
:Puede crear el siguiente
xml
archivo:Con el siguiente script:
Incluso si nunca ha codificado antes, creo que esto debería ser fácil de usar y modificar. El archivo se lee línea por línea en el
while
bucle.IFS
es el especificador de campo interno. ElIFS=$','
declara que el valor del separador de campo es una coma. Esto es estándar para un archivo CSV, pero se puede cambiar según sea necesario para que coincida con el formato del archivo de entrada.El
-r
argumento delread
comando le dice que trate cualquier barra diagonal inversa en su archivo como parte de sus datos en lugar de como un escape para un siguiente carácter especial.El
-a arry
argumento coloca cada columna de su archivo en una matriz (llamadaarry
). Las columnas en este ejemplo son nombre, edad, país. En otras palabras, los valores entre las comas. Por lo tanto, cada columna de la línea se almacena en una matriz.Luego, el texto necesario para
xml
se envuelve alrededor de los valores y laxml
línea se agrega al archivo de salida conecho
.fuente
while IFS=$',' read -r -a arry
, es útil para otra. Gracias."Somename, Jack"
lugar deJack
en el archivo de entrada?Una solución bastante fácil de usar (es decir, fácil para los entusiastas como yo) al desafío de conversión de CSV a XML es usar un buen editor XML multiplataforma que tenga esta característica incorporada. (Lo he usado en Ubuntu y Mac OSX 10.10.5; también tiene Windows ejecutable).
XMLSpear
Como se mencionó, es un editor XML, pero incluye "importar" CSV a XML (y Excel a XML) en su menú principal:
Convirtió un archivo CSV de 31Mb para mí (un volcado de una base de datos de la biblioteca de 20,000 entradas) en aproximadamente 15 segundos, dándome un archivo XML bien formado para guardar y manipular.
Como editor, tiene muchas otras características de bienvenida (detalladas en el enlace anterior). No encuentro mención de ninguna licencia para ello, pero esto está incluido en el "LÉAME":
El archivo Léame también incluye útilmente el contenido de un archivo .desktop.
Me funciona bien en Ubuntu 18.04 LTS (Gnome).
fuente
Soy un gran admirador del
BaseX
cual parece tener una capacidad de importación:http://docs.basex.org/wiki/CSV_Module
Podría señalar que, aparentemente, es más fácil usar una aplicación web:
https://webapps.stackexchange.com/q/123959/24327
Lo que equivale a un complemento o extensión para el navegador que funciona con las hojas de Google.
Siento tu dolor porque es una utilidad aparentemente simple que debería, bueno, estar disponible a través de apt.
fuente
Sugeriría que usted o alguien escriba códigos en Python. Python es fácil de aprender y resuelve su problema fácilmente. Tiene tanto módulo CSV como módulos XML . Mi sugerencia tiene en cuenta que es posible que deba tener sus propios nombres para los elementos XML o tener otros requisitos complejos (como convertir la última columna CSV en el atributo de la última pero una columna).
Hay toneladas de tutoriales en línea sobre Python.
fuente