Una columna llamada «Total (€)» no puede ser un nombre de elemento XML
Publicado el 15/9/2026 · 4 min de lectura · Herramientas de archivos
Daniel Okonkwo — Desarrollador front-end y redactor de Tecnología en OneKitly
Rendimiento web · Formatos de archivo
Verificado con 3 fuentes
Ambas exportaciones leen la primera fila como nombres de campo y luego cada una debe obedecer las reglas de su propio formato. JSON casi no tiene: una clave puede ser cualquier cadena, así que una columna titulada «Total (€)» se convierte en la clave «Total (€)» tal cual, y una columna sin etiqueta en la clave «» — incómodo pero fiel. XML tiene reglas estrictas sobre los nombres, y el texto de un encabezado suele infringirlas. Medido sobre una hoja de cuatro columnas: «Produit» sigue siendo Produit, «Total (€)» pasa a Total_, «2026 ventes» pasa a _ventes porque un nombre no puede empezar por una cifra, y un encabezado vacío pasa a column4. Nada se suprime — cada carácter prohibido en un nombre se pliega en un guion bajo en vez de borrarse — pero dos encabezados distintos pueden normalizarse al mismo nombre de elemento, y conviene comprobarlo antes de dar el resultado a algo que los espera distintos. Los valores se escapan y no se alteran: un ampersand o un ángulo en una celda cruza intacto.
JSON toma el texto de tu encabezado como clave, exactamente tal cual. XML no puede — sus nombres no admiten espacios, paréntesis ni una cifra inicial — así que se normalizan, y saber cómo evita una sorpresa aguas abajo.
La fila vacía que solo algunos formatos emiten
Una hoja con una fila totalmente vacía en medio se exporta distinto según la forma del destino. Los formatos por filas la conservan: el CSV de una hoja de cuatro columnas con una fila vacía contiene una línea de tres comas, y el TSV de tres tabuladores — porque una fila es una fila y el formato no tiene noción de registro ausente. Los formatos por objetos la descartan: el JSON emitió dos objetos para tres filas de datos en la misma prueba. El XML es por filas por construcción y la habría conservado de forma natural, lo que habría hecho que un mismo archivo se contradijera entre dos exportaciones de la misma herramienta. Descarta pues la fila vacía, y JSON y XML coinciden.
Qué destino para qué consumidor
JSON cuando lo va a leer un script o una API, porque las claves sobreviven tal cual y un lector puede designar una columna por su nombre real. XML cuando el consumidor es un sistema antiguo, una integración de empresa o cualquier cosa que valide contra un esquema — y comprueba antes los nombres de elementos contra ese esquema, ya que la normalización puede no producir lo que espera. TSV cuando el destino es una carga en base de datos o una tubería de shell: un tabulador tiene mucha menos probabilidad de aparecer dentro de una celda que una coma, así que un archivo separado por tabuladores necesita menos comillas y se rompe menos. HTML cuando alguien solo quiere mirar la tabla en un navegador o pegarla en un documento.
| Encabezado en la hoja | Clave JSON | Elemento XML |
|---|---|---|
| Produit | «Produit» | <Produit> |
| Total (€) | «Total (€)» | <Total_> |
| 2026 ventes | «2026 ventes» | <_ventes> — sin cifra inicial |
| (sin encabezado) | «» | <column4> |
Preguntas frecuentes
- ¿Y si dos encabezados se normalizan al mismo nombre de elemento?
- Obtienes dos elementos con el mismo nombre dentro de cada fila, que es XML válido y normalmente no lo que quiere un consumidor. «Total (€)» y «Total (£)» pasan ambos a Total_, por ejemplo. Renombra las columnas en la hoja antes de convertir — es el único sitio donde la ambigüedad puede resolverse, ya que una vez producido el XML los encabezados originales han desaparecido.
- ¿Los caracteres acentuados pasan en ambos formatos?
- En los valores, sí — ambos se escriben en UTF-8 y el XML lo declara en su prólogo. En los nombres de elementos XML las reglas son más amplias de lo que parece: un nombre puede contener letras acentuadas, de modo que un encabezado «Quantité» sería un elemento válido. Este conversor es más estricto que la especificación y pliega todo lo que sale del alfabeto latino simple en un guion bajo — la opción prudente para consumidores que son a su vez más estrictos que la especificación, y hay muchos.
- ¿Puedo obtener un archivo por hoja en vez de por libro?
- Divide primero el libro y luego convierte cada trozo — la división escribe un .xlsx por hoja y los conversores toman una hoja cada vez, así que esa vía te da exactamente una salida por pestaña con los nombres conservados. Convertir directamente un libro de varias hojas te da la primera, lo que conviene al caso corriente de un libro que en realidad es una sola tabla.
Artículos que podrían interesarte
Todas las guías →Herramientas relacionadas
Fuentes
¿Has detectado un error en este artículo?