Conversor gratuito de XML a CSV
Convierte datos XML al formato CSV con detección automática.
Cómo usar
- Pega o escribe tus datos XML en el área izquierda.
- La herramienta detecta automáticamente los elementos que se repiten y aplana las estructuras anidadas.
- Previsualiza tus datos a la derecha. Haz clic en Descargar CSV para guardar el archivo convertido.
Preguntas frecuentes
¿Cómo se gestionan los elementos anidados?
Los elementos anidados se aplanan con notación de puntos. Por ejemplo, «person.address.city» se convierte en un único encabezado de columna.
¿Y si los elementos tienen un número de hijos distinto?
Los valores faltantes se dejan vacíos en la salida CSV. Todos los encabezados de columna se preservan aunque algunas filas no tengan ciertos valores.
¿Cómo detecta la herramienta los elementos que se repiten?
La herramienta identifica automáticamente el tipo de elemento más frecuente en tu XML y lo usa como fuente de filas.
Por qué la conversión de XML a CSV surge tan a menudo
El XML es detallado y jerárquico; el CSV es plano y denso. Muchos datos útiles del mundo real viven en XML: sitemap.xml, fuentes RSS / Atom, archivos de exportación de WordPress, configuraciones plist de Apple, listas de dependencias pom.xml de Maven, rutas de GPS (GPX), marcadores de posición de Google Earth (KML), formatos de extractos bancarios (CAMT.053, MT940 en forma XML), fuentes de productos de comercio electrónico, HL7 v3 sanitario, informes financieros en XBRL, partituras en MusicXML, y casi nada de ello se puede analizar sin antes aplanarlo en filas. Excel, Google Sheets, LOAD DATA de SQL, Pandas, R, Tableau y Power BI consumen todos CSV de fábrica; meter tu XML en una de esas herramientas implica convertirlo primero.
El desajuste fundamental
El XML permite un anidamiento arbitrario; el CSV es bidimensional. No existe una correspondencia XML→CSV sin pérdidas de propósito general. Todo convertidor tiene que hacer suposiciones sobre qué nivel del árbol representa las «filas» y cómo gestionar el anidamiento más profundo. Las dos formas comunes:
- Formato de registros repetidos (el caso fácil). Un elemento raíz que contiene muchos hijos, cada uno con la misma forma.
<catalog><book>…</book><book>…</book></catalog>. Cada<book>se convierte en una fila; sus elementos hoja se convierten en columnas. Esto es lo que el convertidor busca y gestiona limpiamente. - Formato de documento de contenido mixto. Texto corrido con marcado incrustado, como XHTML o DocBook. No hay una correspondencia CSV limpia para esto: normalmente se serializa como una única celda de cadena o se rechaza.
La herramienta detecta automáticamente el elemento que se repite buscando el hijo directo más frecuente de la raíz, lo cual es correcto para ~90 % de las fuentes XML reales. Si tu XML no encaja en ese patrón, preprocésalo primero con un script XPath rápido o edítalo a mano hasta darle una forma de registros repetidos.
Fuentes XML comunes que se convierten bien
- sitemap.xml: cada entrada
<url>se convierte en una fila con las columnasloc,lastmod,changefreq,priority. Útil para auditorías SEO e inventarios de contenido. - Fuentes RSS / Atom: cada
<item>o<entry>se convierte en una fila. Útil para el análisis de marketing de contenidos o la migración a una plataforma diferente. - XML de exportación de WordPress (WXR): etiquetas
<item>para entradas, páginas y adjuntos. Habitual al migrar a Substack, Ghost o generadores de sitios estáticos. - GPX (formato de intercambio de GPS): los puntos de ruta
<trkpt>conlat,lon,ele,timese convierten en filas. Útil para el análisis de rutas. - KML (Google Earth): entradas
<Placemark>con nombres, descripciones y coordenadas. - XML plist de iTunes / Apple en forma de registros repetidos: entradas de listas de reproducción, metadatos de apps.
- XML de extractos bancarios OFX / QFX / CAMT: las transacciones se convierten en filas para importaciones de contabilidad.
- Fuentes de catálogos de productos: muchas plataformas de comercio electrónico distribuyen fuentes XML con elementos
<product>repetidos para envíos a CSE.
Cómo se gestionan los atributos, el anidamiento y los hijos repetidos
- Los atributos como
<book id="42">se aplanan en columnas. El convertidor usa el nombre del atributo directamente como encabezado de columna (id) cuando es inequívoco. - Los elementos anidados se aplanan con notación de puntos:
<person><address><street>Main</street><city>NYC</city></address></person>produce las columnasaddress.streetyaddress.city. Es la misma convención que usa eljson_normalizede Pandas para el JSON anidado. - Los elementos hijos repetidos como
<tags><tag>a</tag><tag>b</tag></tags>pueden ser un problema: no hay una representación plana obvia. Preprocesa si necesitas una salida de columna por etiqueta o de fila por etiqueta. - Las cinco referencias de entidad predefinidas (
&,<,>,',") se desescapan durante la conversión, así queTom & Jerryen XML se convierte enTom & Jerryen la celda CSV. - Las secciones CDATA se desenvuelven: su contenido se convierte en el valor de la celda tal cual.
- Los comentarios y las instrucciones de procesamiento se descartan; el CSV no tiene equivalente.
Codificación: la trampa de Excel
El XML declara su codificación mediante <?xml version="1.0" encoding="UTF-8"?>. El CSV no tiene declaración de codificación; el consumidor lo adivina. Excel en Windows usa Windows-1252 por defecto, así que abrir un CSV en UTF-8 sin una marca de orden de bytes muestra mojibake (la é se convierte en é, la ü se convierte en ü). La solución: o bien guardar el CSV con una BOM de UTF-8 () al principio, usar el asistente de importación Datos → Desde texto/CSV de Excel y seleccionar explícitamente UTF-8, o abrir el archivo en Google Sheets, que gestiona UTF-8 correctamente sin una BOM.
Elección del delimitador
Según el RFC 4180, el delimitador canónico de CSV es la coma. La herramienta también admite el punto y coma, el tabulador y la barra vertical; elige el que convenga a tu público:
- Coma: el valor por defecto. Excel la lee cuando la configuración regional del sistema operativo es el inglés. Segura para la mayoría de los casos de uso.
- Punto y coma: preferido en Europa continental y Latinoamérica, donde la coma es el separador decimal. Excel usa el separador de listas del sistema operativo, así que un Excel con configuración regional francesa o alemana produce CSV delimitado por punto y coma.
- Tabulador: útil cuando los campos contienen comas (direcciones, texto libre). Común en los datos científicos.
- Barra vertical: recurre a un delimitador que es raro en cualquier dato natural. Se usa en algunos sistemas empresariales heredados donde los datos pueden contener comas, puntos y coma Y tabuladores.
Según el RFC 4180, los campos que contienen el delimitador elegido, saltos de línea o comillas dobles se envuelven automáticamente entre comillas dobles; las comillas dobles incrustadas se escapan duplicándolas. Las mismas reglas de entrecomillado se aplican sea cual sea el delimitador que elijas.
Privacidad
Las cargas útiles XML suelen contener información confidencial: transacciones de extractos bancarios, datos internos de empleados, mapas de sitio extraídos que revelan URLs internas, registros sanitarios, catálogos de productos sujetos a un acuerdo de confidencialidad (NDA). El DOMParser integrado del navegador se ejecuta íntegramente en tu pestaña: no hay petición de red, ni ida y vuelta al servidor, ni entrada de registro. Los datos van de tu portapapeles a un árbol analizado en memoria, se recorren una vez para el aplanamiento, y el resultado aterriza en el área de texto de salida. Si no haces clic en Descargar, ni siquiera se escribe nada en el disco.
Errores comunes
- Pegar XML que no tiene forma de registros repetidos. Un documento como un único archivo de configuración sin repetición no se aplanará a un CSV utilizable. El convertidor está diseñado para XML de «lista de elementos similares».
- Esperar que los prefijos de atributo se conserven en ambos sentidos.
<product id="42">se convierte en una columna llamadaid, noproduct@idniproduct.id. Si reimportas el CSV en otro lugar como XML, tendrás que reasignar. - Delimitador equivocado para el público. Un CSV con comas abierto en una instalación de Excel francesa puede colapsar en una sola columna. Haz coincidir el delimitador con el lugar donde acabará el archivo.
- Olvidar la BOM de UTF-8 para Excel. Los caracteres no latinos se ven rotos en el Excel de Windows sin la BOM. O bien la añades, o bien abres el archivo en Google Sheets / Excel para la web.
- Intentar convertir XHTML o DocBook. El XML de documento de contenido mixto no se aplana limpiamente: usa una canalización XML/XSLT adecuada para eso, no un convertidor tabular.
- Riesgo preexistente de inyección de CSV en los valores de los campos. Si tu XML contiene texto generado por el usuario y vas a abrir la salida en Excel o Sheets, las celdas que empiezan por
=,+,-o@se interpretan como fórmulas. OWASP documenta esto como una clase de ataque real: sanea antes de compartir exportaciones de contenido generado por el usuario. - Elementos hijos repetidos. Si el XML tiene envoltorios
<tags>con varios hijos<tag>, la salida plana no puede representar eso limpiamente. O bien aplanas a una fila por etiqueta (con los campos del padre repetidos) o preprocesas el XML para incorporar las etiquetas como una cadena delimitada.
Más preguntas frecuentes
¿La herramienta validará mi XML con un esquema?
No. Solo comprueba la buena formación, usando el DOMParser integrado del navegador. Si necesitas validación XSD o RELAX NG, usa una herramienta específica como xmllint, Saxon o el validador de esquemas XML del W3C; la buena formación es suficiente para un aplanamiento seguro a CSV.
¿De qué tamaño puede ser mi XML?
De lo que tu navegador pueda contener. No hay límite del lado del servidor porque no hay ningún servidor implicado. Decenas de megabytes se convierten en uno o dos segundos en un dispositivo moderno. Si tienes cientos de megabytes de XML, divídelo en lotes antes de convertir; pasar todo a través de una sola pestaña del navegador puede toparse con los límites de memoria.
¿La herramienta gestiona los espacios de nombres XML?
Sí, los elementos con espacio de nombres como <atom:link> se reconocen y el prefijo se conserva en el nombre de la columna. Si no quieres el prefijo en tus encabezados CSV, ejecuta una búsqueda y reemplazo rápida sobre la salida para eliminarlos.
¿Se sube mi XML a algún sitio?
No. Todo el análisis y el aplanamiento ocurren en tu navegador mediante el DOMParser integrado. El contenido del área de texto nunca se transmite, registra ni almacena. Una vez cerrada la pestaña, los datos desaparecen.
¿Cuál es la diferencia entre esta y la herramienta de JSON a CSV?
El mismo objetivo (aplanar datos jerárquicos en filas) pero formatos de entrada diferentes. El XML es más detallado, permite atributos, tiene espacios de nombres y usa referencias de entidad para los caracteres especiales. El convertidor de XML a CSV gestiona esas características específicamente; el convertidor de JSON a CSV espera una entrada de array de objetos. Si tienes JSON, usa esa herramienta; si tienes XML, esta te dará un resultado más limpio.
¿Puedo obtener la conversión inversa (de CSV a XML)?
No con esta herramienta, pero la inversa es generalmente más fácil: elige un nombre de elemento de fila, envuelve cada fila y convierte cada columna en un elemento hijo. Un pequeño script de Python o Node con csv + xml.etree lo hace en 20 líneas. O usa una herramienta de datos estructurados como Power Query de Excel, que puede exportar el CSV de vuelta a XML con un esquema elegido.