Convertir XML a Excel
Convierte un feed XML o una exportación de sistema en una hoja de cálculo. Se detecta el elemento de registro repetido y los atributos pasan a ser columnas propias.
Suelta tus archivos aquí
.xml, .rss, .xhtml, .txt · hasta 300 MB
Más ajustesMenos ajustes
Cómo convertir a Excel
- 1
Suelta un archivo XML
Feeds, catálogos y exportaciones de sistemas se leen de forma local. Se aceptan RSS, XML simple y XHTML.
- 2
Confirma el elemento de registro detectado
La ruta más repetida se convierte en la fila. Cámbiala si tu archivo coloca los registros en un nivel poco habitual.
- 3
Convierte y descarga el XLSX
Obtienes una fila por registro con encabezado inmovilizado, lista para filtrar y ordenar.
Cómo se decide qué es una fila
XML no tiene noción de tabla, así que la primera pregunta real es qué elemento cuenta como registro. Se recorre el árbol del documento y, para cada nodo, se cuenta cuántos hijos con el mismo nombre tiene; la ruta con más repeticiones gana, y en caso de empate se prefiere la más profunda porque es más específica: «rss.channel.item» es una respuesta más útil que «rss.channel». Esa heurística acierta casi siempre con feeds y catálogos, pero sigue siendo solo una heurística, por eso la ruta es un campo editable y no una decisión oculta. Una exportación de 1C donde se repiten tanto «Document» como «TableRow» es justo el caso en el que solo tú sabes cuál de los dos querías usar.
Atributos, espacios de nombres y anidamiento
Un atributo contiene datos igual que un elemento, así que id="7" se convierte en una columna llamada @id y un atributo anidado currency="EUR" pasa a ser sum.@currency. Puedes cambiar el prefijo o ignorar los atributos por completo. Los prefijos de espacio de nombres se eliminan de forma predeterminada, de modo que «dc:title» termina en una columna llamada «title», que es lo que casi todo el mundo espera al abrir la hoja. Si desactivas esa opción, se conserva el nombre con prefijo. Los elementos anidados se aplanan en columnas con nombres separados por puntos hasta la profundidad que permitas, y cualquier cosa más profunda se guarda como JSON compacto en una sola celda para no desbordar la hoja a lo ancho.
Las entidades declaradas se rechazan, no se expanden
Un archivo XML puede declarar sus propias entidades dentro de un DOCTYPE, y expandirlas es la base de ataques como billion laughs, que agotan la memoria, y de cómo XXE permite leer archivos de un servidor. No hay forma segura de expandir una entidad no confiable ni buen motivo para intentarlo en una conversión a hoja de cálculo, así que un documento con una declaración ENTITY se rechaza antes de empezar a analizarlo, con un mensaje que explica el motivo. Quita el DOCTYPE y el resto del archivo se convierte con normalidad.
Se analiza aquí, no en un servidor
La decodificación, validación y conversión ocurren dentro de esta pestaña del navegador usando un analizador creado para este fin. Nada se sube al servidor, y al negarse a expandir entidades externas, ninguna parte del archivo puede intentar conectarse a ningún sitio.
Preguntas frecuentes
¿Cómo se elige el elemento repetido?
Contando hermanos con el mismo nombre en todo el documento y tomando la ruta con más repeticiones, prefiriendo la ruta más profunda en caso de empate. La ruta elegida se muestra y puedes sustituirla por cualquier ruta que escribas.
¿Dónde terminan los atributos?
En sus propias columnas, con el prefijo @ de forma predeterminada, por ejemplo @id para un atributo en el registro y sum.@currency para uno en un elemento anidado. Puedes cambiar el prefijo o saltarte los atributos por completo.
¿Qué pasa con los elementos anidados?
Se convierten en columnas con nombres separados por puntos, como order.customer.city, hasta el límite de profundidad que definas. Cualquier cosa más profunda se escribe como una cadena JSON compacta en una sola celda en lugar de expandirse en más columnas.
¿Qué pasa con los espacios de nombres?
Los prefijos como dc: se eliminan de forma predeterminada, así que dc:title se convierte en una columna llamada title. Si dos espacios de nombres usan de verdad el mismo nombre local en tu archivo, desactiva la eliminación para mantenerlos separados.
¿Funciona con RSS?
Sí, y es el caso que la detección maneja mejor: «rss.channel.item» se encuentra de forma automática, con una fila por entrada del feed y columnas para title, link y pubDate.
¿Cuál es el límite de filas?
1 048 576 filas, que es un límite del propio formato XLSX. Un feed más grande se rechaza con un enlace al conversor a CSV, que no tiene ese tope.
¿Se sube mi archivo?
No. El archivo se decodifica, analiza y convierte en tu navegador, y las entidades declaradas se rechazan en lugar de expandirse, de modo que nada en el documento puede disparar tampoco una petición de red.