Cómo convertir XML a CSV (y abrirlo en Excel)
Muchos datos llegan en XML: exportaciones de programas de tienda y contabilidad, feeds de productos, extractos bancarios, sitemaps y respuestas de servicios web antiguos. El XML es ideal para los programas, pero cuesta de leer. Una hoja de cálculo es lo contrario: ordenas, filtras y sumas una columna. Un archivo CSV es el puente sencillo entre los dos, y cualquier hoja de cálculo lo abre.
Esta guía explica cómo convertir con el conversor de XML a CSV gratuito: qué elemento pasa a ser las filas, qué ocurre con los atributos y los elementos repetidos o anidados, y cómo abrir el resultado en Excel sin acentos rotos.
Qué hace la conversión
Cada registro del XML se convierte en una fila, y cada dato que contiene, en una columna. Esta lista de una tienda:
<?xml version="1.0" encoding="UTF-8"?>
<shop>
<book id="bk101" lang="en">
<title>XML & JSON for Everyone</title>
<author>Ada Lovelace</author>
<price currency="EUR">29.95</price>
<tag>data</tag>
<tag>web</tag>
</book>
<book id="bk102" lang="de">
<title>Daten für alle</title>
<author>Alan Turing</author>
<price currency="EUR">24.50</price>
<tag>data</tag>
</book>
</shop>se convierte en este CSV:
@id,@lang,title,author,price,price/@currency,tag
bk101,en,XML & JSON for Everyone,Ada Lovelace,29.95,EUR,data; web
bk102,de,Daten für alle,Alan Turing,24.50,EUR,dataLos nombres de columna indican de dónde viene cada valor:
@idy@langson atributos de<book>(los valores dentro de la propia etiqueta).titleyauthorson elementos hijo.price/@currencyes el atributocurrencyde<price>, justo al lado del precio.- Los dos elementos
<tag>se unen en una celda:data; web.
El & del título vuelve a ser un & normal, y los valores se copian tal cual, así que 24.50 conserva su cero.
Cómo convertir XML a CSV, paso a paso
- Abre el conversor de XML a CSV y pega tu XML en Entrada XML, haz clic en Abrir archivo o suelta un archivo .xml en el recuadro. Ejemplo carga uno de prueba.
- Revisa Una fila por. Elige solo el elemento que se repite, y casi siempre acierta (más abajo lo explicamos).
- Elige el Separador y las demás opciones, explicadas abajo.
- Haz clic en Convertir a CSV y luego Descarga el archivo .csv o Cópialo.
Una línea bajo el resultado dice lo que has obtenido, por ejemplo 2 filas × 7 columnas, una fila por <book>. Si el XML tiene un error, el conversor indica su línea y columna para que puedas corregirlo.
Elegir qué se convierte en fila
El conversor busca los elementos que se repiten bajo un mismo padre y propone el de más arriba: los registros, no sus detalles. Para la tienda de arriba, las opciones son:
Automático: <book> (2)
shop/book (2)
shop/book/tag (3)El número entre paréntesis es cuántas filas obtendrás. Automático elige <book>, una fila por libro. Si eliges shop/book/tag, obtienes una fila por etiqueta (tres filas), útil cuando lo que quieres contar son los detalles. Si tu archivo contiene varias listas, como clientes y pedidos, elige aquí la que necesitas y convierte la otra por separado.
Elementos repetidos: una celda o columnas separadas
Un registro puede contener el mismo elemento varias veces, como las dos etiquetas del primer libro. Elementos repetidos decide qué pasa:
- Unir en una celda (por defecto) los junta con un punto y coma,
data; web, como arriba. Lo mejor para leer y filtrar. - Columnas separadas da a cada uno su propia columna numerada. Un registro con menos recibe celdas vacías, y una nota bajo el resultado lo indica:
@id,@lang,title,author,price,price/@currency,tag[1],tag[2]
bk101,en,XML & JSON for Everyone,Ada Lovelace,29.95,EUR,data,web
bk102,de,Daten für alle,Alan Turing,24.50,EUR,data,Elementos anidados y que faltan
Los elementos dentro de otros elementos se convierten en columnas con el nombre de su ruta, así el CSV sigue siendo plano. Un registro al que le falta algún elemento recibe celdas vacías en esas columnas:
<customers>
<customer id="7">
<name>Ada</name>
<address><city>London</city><zip>NW1</zip></address>
</customer>
<customer id="8">
<name>Alan</name>
</customer>
</customers>@id,name,address/city,address/zip
7,Ada,London,NW1
8,Alan,,Abrir el CSV en Excel o Google Sheets
- Separador: muchas versiones de Excel en España y otros países europeos esperan un punto y coma en lugar de una coma, y si no, lo muestran todo en una sola columna. En ese caso, elige Punto y coma en Separador. Los valores que contienen el separador se ponen entre comillas automáticamente, así se quedan en una celda:
@id;@lang;title;author;price;price/@currency;tag
bk101;en;XML & JSON for Everyone;Ada Lovelace;29.95;EUR;"data; web"
bk102;de;Daten für alle;Alan Turing;24.50;EUR;data- Acentos: el archivo se guarda en UTF-8. Si letras como ü o é se ven mal al abrirlo con doble clic, ábrelo en Excel con Datos > Desde el texto/CSV y elige 65001: Unicode (UTF-8) como origen del archivo. Google Sheets lo lee bien con Archivo > Importar.
- Números con ceros: el CSV conserva
007y24.50tal cual, pero las hojas de cálculo pueden mostrarlos como7y24.5. Al importar, marca esas columnas como Texto para conservarlos.
Protección contra fórmulas de hoja de cálculo
Una celda que empieza por =, +, - o @ puede ejecutarse como fórmula al abrir el CSV en una hoja de cálculo, un truco conocido para esconder fórmulas dañinas en datos exportados. Con Proteger contra fórmulas de hoja de cálculo activado (por defecto), esos valores llevan un apóstrofo delante, así =1+1 pasa a '=1+1 y se muestra como texto. El apóstrofo también aparece delante de valores como teléfonos que empiezan por +; desactiva la opción si el CSV va a otro programa y no a una hoja de cálculo.
Más herramientas XML
- Formateador XML: haz legible el XML primero, o explóralo en la vista de árbol para encontrar los registros.
- XML a JSON: conserva el anidamiento en lugar de aplanarlo en una tabla.
- CSV a XML: el camino inverso. Mira cómo convertir CSV a XML.
¿Se sube mi XML?
No. La conversión se hace en tu navegador, así que tus datos nunca salen de tu dispositivo. Nuestro servidor solo registra que hubo una conversión, para el límite diario.
Preguntas frecuentes
¿Puedo convertir XML directamente a un archivo de Excel (.xlsx)?
Conviértelo a CSV, abre el CSV en Excel y elige Archivo > Guardar como > Libro de Excel. Cualquier hoja de cálculo abre un CSV, por eso es el formato que escribe el conversor.
¿Por qué mi CSV tiene una sola fila?
Nada se repite en el XML, así que todo el documento es un único registro. Si el archivo contiene de verdad una lista, revisa Una fila por y elige el elemento que deben ser las filas.
¿Puedo quitar los nombres de columna?
Sí. Desmarca Fila de encabezado y el CSV empieza directamente con los datos, como esperan algunas importaciones.