araç köşesi

Convertir XML a CSV

Convierta registros XML en una tabla CSV; la etiqueta que se repite se vuelve fila automáticamente

Sus datos se quedan con usted. La conversión ocurre dentro del navegador; no se envía nada a ningún servidor.

Cómo funciona

Un caso común: su tienda en línea o un proveedor le envía el catálogo en XML y usted quiere comparar precios en Excel. Abra el archivo con el Bloc de notas, copie todo y péguelo en el panel izquierdo; la tabla aparece enseguida a la derecha. La herramienta busca primero la etiqueta que se repite. Con 250 etiquetas <producto>, cada <producto> se vuelve una fila y <nombre>, <precio> y <existencias> se vuelven columnas. Un dato escrito dentro de la etiqueta, como <producto id="101">, va a la columna @id; un dato anidado como <proveedor><ciudad>Oaxaca</ciudad></proveedor> va a proveedor.ciudad. Si a un producto le falta un campo, la celda queda vacía y ninguna fila se recorre. La línea de resultado muestra algo como «250 filas × 6 columnas · etiqueta de fila elegida automáticamente: <producto>». El separador depende de su Excel: si usa coma decimal, deje el punto y coma; si usa punto decimal, como en México, elija la coma. Los valores no se modifican: 129,90 y el código postal 01000 quedan tal cual, con su cero inicial.

Esta herramienta también se busca como convertir xml a csv, pasar xml a csv, xml to csv, convertir xml a tsv, convertidor xml a csv.

¿Qué es XML?

El XML guarda los datos en etiquetas anidadas: un <producto> puede contener <nombre>, <precio> y <proveedor>, y el <proveedor>, a su vez, <cp> y <ciudad>. Ese árbol no cabe tal cual en una cuadrícula, porque un registro puede tener una etiqueta repetida y el siguiente ninguna. Catálogos de productos, facturas electrónicas, estados de cuenta y trámites con una dependencia usan mucho este formato. Para hacer una tabla se aplana el árbol: cada ruta, como proveedor.ciudad, se vuelve un nombre de columna.

¿Qué es CSV?

El CSV es una tabla en texto plano: un registro por renglón y las celdas separadas por un carácter. Cualquier hoja de cálculo lo abre, pero el separador no es fijo: Excel usa el de la configuración regional, coma en México y punto y coma en España. Una marca UTF-8 (BOM) al inicio del archivo le indica a Excel la codificación; sin ella, á, é y ñ se ven como símbolos raros.

¿Cuál es la diferencia entre XML y CSV?

El XML describe una jerarquía: un pedido contiene un cliente, el cliente un domicilio, el domicilio una ciudad, y cada valor lleva el nombre de su etiqueta. El CSV solo conoce dos dimensiones: filas y columnas. Al convertir no se pierde ningún valor, pero cambia la forma: lo anidado se vuelve un nombre de columna largo como domicilio.ciudad y una etiqueta repetida dentro de un registro se vuelve columnas extra como etiqueta_2. Para filtrar, ordenar y sumar conviene el CSV; para devolver los datos a un sistema hace falta el XML.

Cómo se elige la fila y adónde van los datos anidados

El XML es un árbol y el CSV una tabla plana; la pregunta clave es qué etiqueta forma una fila. La herramienta revisa las etiquetas que aparecen al menos dos veces bajo el mismo padre, descarta las que están dentro de otra etiqueta repetida y se queda con la más frecuente. Así, tres <telefono> dentro de cada <persona> no le ganan a dos <persona>: la fila es <persona> y los números se reparten en telefono, telefono_2 y telefono_3.

Si nada se repite (el encabezado de una sola factura, por ejemplo), todo el documento queda en una fila y la línea de resultado lo indica. En un CFDI los conceptos están en cfdi:Concepto; basta con escribir Concepto, sin el prefijo cfdi:. Los nombres de columna siguen una regla: etiquetas anidadas unidas con punto (proveedor.ciudad) y atributos con @ (@id, proveedor.@tipo). Las declaraciones de espacio de nombres (xmlns) nunca se vuelven columnas.

  • <producto id="7"> → columna @id
  • <domicilio><ciudad>Puebla</ciudad></domicilio> → columna domicilio.ciudad
  • Dos <etiqueta> en un mismo producto → columnas etiqueta y etiqueta_2
  • Campo que falta en un registro → celda vacía en esa fila

Punto y coma, coma o tabulador

Excel no toma el separador del archivo, sino de la configuración regional del equipo. Donde la coma es el separador decimal (España, Argentina, Colombia, Chile) Excel espera punto y coma; donde el decimal es el punto (México, Estados Unidos) espera coma. Si al abrir el archivo todo aparece en una sola columna, vuelva a descargarlo con el otro separador.

El tabulador genera un archivo .tsv, que las bases de datos leen sin sorpresas y que se pega limpio en cualquier hoja de cálculo. Una celda que contiene el separador, comillas o un salto de línea se encierra entre comillas dobles y las comillas internas se duplican. No se convierte nada: el XML no tiene tipo número, así que 129,90 y los ceros iniciales se escriben como texto.

Preguntas frecuentes

¿Cómo convierto un archivo XML a CSV para Excel?

Abra el archivo XML con el Bloc de notas, copie todo el contenido y péguelo aquí en el panel izquierdo. La etiqueta repetida se vuelve fila y sus subetiquetas, columnas. Elija el separador que usa su Excel y pulse Descargar; con doble clic en el .csv, Excel lo abre con las columnas correctas y las tildes intactas.

Se tomó la etiqueta equivocada como fila. ¿Qué hago?

La línea de resultado indica la etiqueta elegida. Escriba la que quiere en la casilla «Etiqueta que forma una fila», por ejemplo producto o Concepto. No hace falta escribir los signos < > ni prefijos como cfdi:. Si el nombre no existe en el XML, el mensaje de error enumera las etiquetas encontradas.

¿Puedo convertir XML a TSV?

Sí. Ponga «Carácter entre columnas» en «Tabulador (TSV)» y Descargar le dará un archivo .tsv separado por tabuladores. Todo lo demás se mantiene: la etiqueta de fila, los nombres de columna como proveedor.ciudad y las columnas de atributos.

¿Mi XML se sube a un servidor?

No. La lectura y la conversión ocurren por completo en su navegador. Los catálogos, datos de clientes o facturas que pegue no salen de esta página ni se guardan en ningún lado. Una vez cargada la página, la conversión funciona incluso sin conexión.