Convertir CSV a XML

Funciona en tu dispositivo · Tu archivo nunca sale de tu dispositivo.

Suelta un CSV o pégalo y obtén un documento XML con un elemento <root>, un elemento <item> por fila y un elemento hijo por columna, con el nombre de la cabecera. Los separadores se detectan solos (coma, punto y coma, tabulador, barra vertical), los campos entrecomillados se tratan según la RFC 4180 y la marca de orden de bytes UTF-8 se elimina.

Los nombres de columna que XML no puede usar como nombre de elemento – con espacios, símbolos o un dígito al principio – se sanean con guiones bajos ("Precio unitario" pasa a Precio_unitario), así que la salida siempre está bien formada. Los valores se escriben como texto dentro de los elementos; no hay atributos, lo que mantiene el documento simple para cualquier analizador.

Ves las primeras 200 líneas antes de descargar, y la conversión se hace por completo en tu dispositivo.

Cómo Convertir CSV a XML

  1. Suelta un archivo CSV o pega el texto CSV.
  2. Deja el separador en automático o elígelo.
  3. Pulsa «Convertir a XML» y revisa la vista previa.
  4. Descarga el .xml.

Formatos admitidos y límites

Entrada
CSV / TSV – un archivo o texto pegado
Salida
XML 1.0, UTF-8, <root><item>…</item></root>
Análisis
RFC 4180; separador detectado solo
Nombres
Cabeceras saneadas a nombres de elemento válidos
Dónde se ejecuta
En tu navegador – sin subir nada

No sirve para: Producir un XML de un esquema concreto (formato bancario, tributario o de comercio electrónico) – los nombres de elemento salen de tus cabeceras, no de un esquema.

Los valores se escriben exactamente como en el CSV

XML guarda todos los valores como texto, así que no se gana nada interpretando números o true y false, y esta página no lo ofrece. Cada valor se escribe tal como está en el CSV: 1.50 sigue siendo 1.50, 1e3 sigue siendo 1e3, TRUE sigue siendo TRUE y la palabra NULL sigue siendo NULL. Una celda vacía da un elemento vacío, como <note/>, y los ceros a la izquierda, como en 007, se conservan.

Cómo se convierten los nombres de la cabecera en nombres de elemento

Primero se arreglan las cabeceras repetidas y vacías: dos columnas llamadas nombre pasan a <nombre> y <nombre_2>, y una tercera cabecera vacía pasa a <column_3>. Después cada nombre se hace válido para XML. Total (USD) pasa a Total__USD_, porque los espacios y los paréntesis se convierten en guiones bajos, y 1er pasa a _1er. El guion y el punto están permitidos, así que e-mail sigue siendo e-mail y direccion.ciudad sigue siendo un solo elemento con ese nombre; no se divide en elementos anidados. Las cabeceras en cualquier escritura, árabe o china por ejemplo, se conservan tal como están.

Dos cabeceras que acaban con el mismo nombre, como "a b" y "a_b", se escriben las dos como <a_b> dentro de cada <item>. Un programa que lea los elementos por su nombre puede ver entonces solo el primero, así que cambia antes el nombre de una de ellas en el CSV.

Cómo se lee el CSV

El texto se lee con las mismas reglas que /csv-to-json, que las explica con ejemplos: cómo funcionan las comillas, cómo se encuentra el separador, cómo se reconoce la codificación del archivo y qué pasa con una fila que tiene más o menos celdas que la cabecera. En el XML, una celda que falta se convierte en un elemento vacío. Las celdas que pasan de la última cabecera no tienen nombre de elemento, así que se dejan fuera, y un mensaje dice cuántas filas las tenían y dónde está la primera.

Los nombres <root> e <item> son fijos. Si un sistema espera otros nombres, como <clientes> y <cliente>, cámbialos en un editor de texto después de descargar; no hace falta cambiar nada más de la estructura.

Preguntas frecuentes

¿Mis archivos se suben a un servidor?
No. La conversión ocurre por completo en tu navegador, con la potencia de tu propio dispositivo. El archivo no sale de tu ordenador ni de tu móvil. Y una vez que has usado una herramienta, sigue funcionando sin conexión (el video, el reconocimiento de texto y la eliminación de fondo descargan su motor desde esta web la primera vez).
¿Cómo es la estructura del XML?
Una declaración XML, después <root>, y por cada fila un <item> con un elemento por columna: <item><nombre>Ana</nombre><ciudad>Bogotá</ciudad></item>. El elemento de fila se llama siempre item.
Mis cabeceras tienen espacios – ¿es un problema?
No. Los nombres se sanean a lo que XML admite: espacios y símbolos pasan a guiones bajos, y un dígito inicial recibe un guion bajo delante. El resto del nombre no cambia.
¿Detecta el separador?
Sí – coma, punto y coma, tabulador y barra vertical se prueban en las primeras líneas y gana el que sea consistente. También puedes elegirlo tú.

Herramientas relacionadas

Más en Hojas de cálculo y datos

Esta página en otros idiomas: English · العربية · Deutsch · Français · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা