Conversor de XML a CSV — Convierte Archivos XML en Filas de Hoja de Cálculo

XML es un árbol; las hojas de cálculo son tablas. Cada vez que unos datos XML hay que ordenarlos, filtrarlos, graficarlos o pegarlos en Excel, alguien tiene que aplanar el árbol — y hacerlo a mano es donde mueren las tardes. Este conversor de XML a CSV hace el aplanado por ti: pega el XML y encuentra los elementos repetidos (los registros), convierte sus elementos hijos en columnas, incluye también los atributos como columnas (marcados con el prefijo @) y produce un CSV estándar con fila de cabecera, listo para descargar o copiar directamente en Excel, Google Sheets o cualquier herramienta de datos. El analizador es un analizador XML de verdad escrito en JavaScript — comprueba que las etiquetas coinciden e informa de dónde exactamente se rompe un XML mal formado — y funciona por completo en tu navegador, así que ni las exportaciones confidenciales salen de tu máquina. El ejemplo es un directorio de tres usuarios cuya conversión puedes inspeccionar línea a línea más abajo.

Cómo funciona el aplanado

El conversor analiza tu XML hasta convertirlo en un árbol y después busca el patrón de registro: el grupo más grande de elementos hermanos que comparten el mismo nombre de etiqueta. En el ejemplo, tres elementos <user> viven bajo <users>, así que los usuarios se convierten en las filas. Las columnas son la unión de todo lo que esas filas cargan: primero los atributos (aquí @id — el prefijo @ marca un atributo para que nunca choque con un elemento del mismo nombre) y después los elementos hijos en el orden en que aparecen primero (name, city, role). Si a una fila le falta un campo que otra fila tiene, su celda queda simplemente vacía; si un campo se repite dentro de una fila, sus valores se unen con “; “. Los valores se escapan según las reglas CSV: todo lo que contenga una coma, una comilla o un salto de línea se envuelve en comillas dobles, y las comillas internas se duplican. Ese es el conjunto completo y honesto de reglas: nada se descarta en silencio, nada se adivina.

Ejemplo resuelto

El ejemplo se convierte en cuatro líneas: la cabecera @id,name,city,role y una fila por usuario: 1,Ana Ruiz,Valencia,Diseñadora y así sucesivamente. Abre el archivo descargado en una hoja de cálculo y cada valor cae en su propia celda, porque la cabecera y las filas siguen el mismo orden de columnas y el escapado es CSV estándar de estilo RFC. Prueba a editar el ejemplo antes de convertir: borra el <role> de un usuario y convierte de nuevo: la celda de rol de ese usuario sale vacía, y la columna sobrevive porque otra fila sí la tiene. Añade un atributo como level="senior" a un usuario y aparecerá una columna nueva @level para todos. Esos dos comportamientos — unión de columnas, vacío para lo que falta — son lo que hace predecible la salida con XML real e irregular.

Lo que este conversor no hace

CSV es plano, y parte del XML no lo es. Las estructuras muy anidadas (un pedido que contiene artículos que contienen componentes) no pueden vivir todas en una sola tabla; esta herramienta aplana un nivel de registros y une el contenido de texto más profundo con espacios, lo que es un resumen legible, no una conversión sin pérdidas. Si tu XML tiene varios tipos de registro distintos uno junto a otro, solo el grupo más repetido se convierte en filas. El contenido mixto (texto tejido entre elementos) también se aplana a texto. Para XML de verdad relacional, lo correcto es un CSV por tipo de registro: convierte cada subárbol por separado. Y aunque el analizador es estricto con la buena formación, no valida contra un esquema ni un DTD: los documentos válidos pero inusuales se convierten con las mismas reglas que los simples.

Preguntas frecuentes

¿Cómo decide qué se convierte en fila?

El grupo más grande de elementos hermanos con el mismo nombre en el documento. Si no hay un grupo repetido, desciende por los envoltorios de un solo hijo hasta encontrar uno, así que funcionan tanto <users><user/>… como las raíces repetidas directamente.

¿Qué pasa con los atributos?

Se convierten en columnas con el prefijo @: id="7" se convierte en la columna @id. Así un atributo y un elemento hijo con el mismo nombre no se sobrescriben entre sí.

¿Se abrirá bien en Excel?

Sí. La salida es CSV estándar separado por comas, con fila de cabecera y comillas de estilo RFC, que Excel, Google Sheets y LibreOffice leen de forma nativa con el botón de descarga.

¿Hay un límite de tamaño?

El límite práctico es la memoria de tu navegador: los archivos de unos pocos megabytes se convierten en mucho menos de un segundo. No se sube nada, así que no hay un tope del lado del servidor.

Herramientas relacionadas

English version: XML to CSV Converter — Flatten XML Files into Spreadsheet Rows. También te puede interesar: Conversor de CSV a XML — Convierte Filas de CSV en Nodos XML al Instante · Conversor de JSON a XML — Convierte Datos JSON en XML Limpio Online.


Inserta esta herramienta en tu web — gratis

Copia el código de abajo para añadir esta herramienta funcional a tu propia página. Solo pedimos que mantengas el pequeño enlace de crédito que la acompaña.


Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top