Por qué convertir XML a JSON
El XML sigue moviendo los feeds RSS, los sitemaps, los servicios SOAP, las facturas, los documentos de oficina y muchas integraciones empresariales. Sin embargo, el código web moderno trabaja de forma más natural con JSON. Convertir permite inspeccionar datos XML rápidamente, pasarlos a JavaScript o guardarlos en bases de datos documentales.
El conversor usa fast-xml-parser con ajustes pensados para no perder información: los atributos se guardan como claves que empiezan por @, el texto de un elemento con atributos va en #text y los elementos repetidos se convierten en arrays. La declaración XML y las instrucciones de procesamiento se descartan porque el JSON no tiene sitio para ellas.
XML frente a JSON: comparación rápida
| Característica | XML | JSON |
|---|---|---|
| Nombre completo | Extensible Markup Language | JavaScript Object Notation |
| Tipo | Datos jerárquicos con marcado | Datos jerárquicos |
| Año de creación | 1998 | Principios de los 2000 (RFC 4627 en 2006) |
| Creado por | W3C | Douglas Crockford; hoy ECMA-404 y RFC 8259 |
| Estructura | Elementos anidados con atributos | Objetos y arrays anidados |
| Comentarios | Sí, con <!-- --> | No |
| Tipos de datos | Texto, salvo que un esquema XSD defina tipos | Cadena, número, booleano, null, objeto, array |
| Ideal para | Intercambio de datos empresariales, feeds y archivos ofimáticos | APIs, aplicaciones web y ajustes de apps |
| Compatibilidad | Todos los lenguajes; muy usado en sistemas empresariales | Todos los lenguajes de programación |
| Tipo MIME | application/xml | application/json |
Cómo convertir XML a JSON
Paso 1: Selecciona el archivo XML
Suelta un archivo .xml, como un feed, un sitemap o una exportación.
Paso 2: Mantén JSON como destino
JSON está preseleccionado; también están disponibles CSV y YAML.
Paso 3: Convierte
El documento se analiza y cada elemento se convierte en una propiedad.
Paso 4: Descarga
Guarda el archivo .json con sangría.
Reglas de correspondencia
Atributos
<item id="7"> se convierte en { "item": { "@id": 7 } }.
Texto con atributos
El texto del elemento se guarda en #text cuando hay atributos.
Elementos repetidos
Dos o más hermanos con el mismo nombre se convierten en un array.
Números seguros
Los números simples y true o false pasan a valores JSON; los códigos con ceros iniciales siguen siendo cadenas.
Usos típicos de XML a JSON
Leer feeds RSS y Atom. Trabaja con los elementos del feed como objetos JavaScript.
Migrar API heredadas. Inspecciona respuestas SOAP o XML mientras pasas a JSON.
Auditar sitemaps. Carga listas de URL en scripts u hojas de cálculo.
Convertir configuraciones. Lleva ajustes de archivos XML a herramientas basadas en JSON.
El problema del elemento único o repetido
El XML no indica si un elemento debe ser una lista. Si un feed tiene un solo elemento, se convierte en un objeto; con dos, en un array. Por eso el código que lea el JSON debe aceptar ambas formas, por ejemplo envolviendo los valores sueltos en un array.
Es una limitación de cualquier conversión de XML sin esquema, no de esta herramienta, y todos los conversores genéricos la tienen.
Qué no se traslada
Se eliminan los comentarios, las instrucciones de procesamiento y la declaración XML. Los prefijos de espacio de nombres se mantienen como parte de los nombres, como media:content, para que puedas distinguir los elementos. Los espacios alrededor de los valores de texto se recortan.
El contenido mixto, en el que texto y elementos se intercalan dentro del mismo padre, se simplifica: las partes de texto se agrupan en #text y no se conserva su posición exacta entre los elementos hijos.
- Se conservan: elementos, atributos, texto y prefijos de espacio de nombres.
- Se eliminan: comentarios, declaraciones e instrucciones de procesamiento.
- Se simplifica: el contenido mixto de texto y elementos.
Consejos para XML a JSON
- Comprueba que el XML esté bien formado; una etiqueta sin cerrar detiene la conversión.
- Normaliza los elementos únicos a arrays en tu código antes de recorrerlos.
- Los feeds grandes se convierten bien, pero el JSON con sangría puede ocupar más que el XML.
- Para volver, usa el conversor de JSON a XML, que entiende las claves @ y #text.
Preguntas sobre la conversión de XML a JSON
¿Cómo se representan los atributos?
Como propiedades cuyo nombre empieza por @, por ejemplo @id o @href.
¿Por qué un elemento es un objeto y otro un array?
Los elementos hermanos repetidos se convierten en arrays; un elemento único se convierte en objeto. El propio XML no marca qué elementos son listas.
¿Se convierten los números?
Los números simples y los valores true o false pasan a números y booleanos JSON. Los valores con ceros iniciales, como 007, y los números muy largos siguen siendo cadenas.
¿Se conserva la declaración XML?
No. La declaración y las instrucciones de procesamiento se descartan porque el JSON no puede representarlas.
¿Admite espacios de nombres?
Los prefijos de espacio de nombres se mantienen en los nombres de las propiedades, por ejemplo atom:link.
¿Se sube algo?
No. El análisis se hace en tu navegador.