Convertir XML a CSV
Convierte un feed, una exportación de productos o un archivo RSS en una tabla de hoja de cálculo. El elemento de registro repetido se detecta por ti, sin XPath.
Suelta tus archivos aquí
.xml, .rss, .xhtml, .txt · hasta 300 MB
Más ajustesMenos ajustes
Cómo convertir a CSV
- 1
Suelta tu archivo XML
Arrastra un archivo .xml o .rss a la página. Primero se valida, así un cierre de etiqueta que falte se informa con su línea y columna en lugar de darte media tabla.
- 2
Confirma el elemento de registro
Se detecta el elemento repetido y se muestra con cuántos registros contiene, por ejemplo rss.channel.item con cuarenta. Elige otro candidato si no es el nivel que querías.
- 3
Convierte y descarga el CSV
Pulsa el botón y guarda la tabla.
XML no tiene filas, así que hay que encontrarlas
Un árbol no indica qué nivel es un registro. El documento se recorre hasta una profundidad de seis, contando cuántos elementos hermanos con el mismo nombre hay en cada ruta, y gana el grupo mayor, con las rutas más profundas rompiendo empates, porque rss.channel.item es más útil que rss.channel. Se ofrecen hasta cinco candidatas con sus recuentos de registros.
Atributos, anidación e hijos repetidos
Un atributo se convierte en su propia columna con el prefijo @, así id en un producto no choca con un elemento hijo del mismo nombre. Los elementos hijos se convierten en columnas con nombres separados por puntos hasta la profundidad que permitas, y todo lo que quede más profundo se escribe en una sola celda como JSON. Los hijos repetidos se pueden unir en una lista, numerar o dejar como JSON.
Espacios de nombres y documentos hostiles
Los prefijos de espacio de nombres se quitan de forma predeterminada, así dc:title llega como una columna title sencilla y un feed que mezcle tres vocabularios sigue produciendo encabezados legibles. Los documentos que declaran entidades personalizadas en su DOCTYPE se rechazan antes de analizarlos en lugar de expandirlas; ese tipo de archivo es el que bloquea una pestaña del navegador.
No se sube nada para convertirlo
El validador, el analizador y el generador de CSV son JavaScript que se ejecuta en esta pestaña del navegador. Ninguna parte de tu documento se envía a un servidor, ni se guarda ni se registra, y la herramienta sigue funcionando con la red desconectada. Cierra la pestaña y no queda nada del archivo.
Preguntas frecuentes
¿Cómo decide la herramienta qué elemento es un registro?
Cuenta repeticiones. Cada ruta hasta una profundidad de seis se examina en busca de elementos hermanos con el mismo nombre, y la ruta con más de ellos se convierte en el registro; si dos rutas empatan, gana la más profunda. Las alternativas siguen visibles con sus recuentos, y también puedes escribir una ruta tú mismo cuando el documento es poco habitual.
¿Dónde terminan los atributos XML?
Cada atributo se convierte en una columna con un prefijo @, así un atributo id pasa a ser @id y se mantiene distinto de un elemento hijo id. Si tu exportación lleva atributos que no necesitas, al cambiar atributos a omitir se eliminan todos y la tabla queda más estrecha.
¿Qué pasa con los elementos anidados dentro de un registro?
Se convierten en columnas con nombre con puntos, como price.currency, hasta el límite de profundidad que definas. Por debajo de ese límite todo el subárbol se escribe en una sola celda como JSON, lo que mantiene los datos disponibles sin crear miles de columnas casi vacías.
¿Por qué el CSV empieza con una marca de orden de bytes?
Para que Excel reconozca el archivo como UTF-8 al hacer doble clic en lugar de adivinar una página de códigos antigua y estropear texto con acentos o cirílico. Si el archivo va a un script o a un cargador de base de datos al que no le gusta la marca, el UTF-8 sin BOM está a un ajuste de distancia.
Excel muestra todo en una sola columna. ¿Qué salió mal?
Nada en el archivo. Excel separa usando el separador de tu configuración regional, que es el punto y coma en gran parte de Europa. Convierte de nuevo con punto y coma seleccionado, o usa Datos y luego Texto en columnas en el archivo que ya tienes.
¿Funciona con un feed RSS o Atom?
Sí, ese es el caso más sencillo. La detección cae en rss.channel.item o en el elemento entry equivalente, cada item se convierte en una fila, y las extensiones con espacio de nombres como Dublin Core o etiquetas de medios llegan como columnas normales una vez quitados los prefijos.
¿Por qué aparece una comilla antes de un valor que empieza por signo igual?
Porque una hoja de cálculo lo trataría como una fórmula, y un valor de un feed no confiable se puede diseñar para ejecutar un comando al abrir el archivo. Un apóstrofo inicial lo neutraliza. Los números negativos simples como -5 se dejan tal cual.
Mi archivo tiene un DOCTYPE y fue rechazado. ¿Por qué?
Se rechaza a propósito un DOCTYPE que declare entidades. Las definiciones de entidades anidadas pueden expandirse a gigabytes de texto y congelar la pestaña, y las externas pueden intentar leer archivos de otros sitios. Quita las declaraciones de entidades del DOCTYPE y el documento se convierte con normalidad.