Conversor de XML a JSON

Convierte XML a JSON y al revés con un único mapeo documentado y estable — atributos, arrays y texto mixto incluidos — usando DOMParser.

La conversión ocurre localmente en tu navegador. Tus documentos nunca salen del dispositivo.

—

Cómo funciona

De XML a JSON se analiza con DOMParser y se recorre el árbol con un conversor recursivo escrito a mano; de JSON a XML se recorre el objeto en sentido contrario. La conversión está fijada y documentada abajo — el mismo archivo siempre produce el mismo JSON, y el JSON reconstruye el mismo XML.

La convención, en una imagen
Los atributos se reúnen en un objeto "attr" sobre su elemento; los elementos hermanos repetidos con el mismo nombre se vuelven un array JSON; un elemento que mezcla texto con hijos o atributos guarda su texto bajo "#text"; un elemento sin hijos es simplemente su cadena de texto.
Números y booleanos siguen siendo cadenas
XML no tiene tipos de datos, así que cada valor de texto se convierte en cadena JSON tal cual — "12" nunca pasa a ser el número 12. Eso mantiene exacto el sentido inverso (los primitivos JSON se vuelven cadenas) y evita cambiar en silencio valores como "007" o "true" que un conversor que adivina tipos corrompería.
Qué se pierde, honestamente
Los comentarios y las instrucciones de procesado no tienen representación JSON en esta convención y no sobreviven al viaje de ida y vuelta; el contenido CDATA pasa a texto plano (sin pérdida para el texto mismo). Los prefijos de espacio de nombres se mantienen literales, nunca se expanden. La declaración XML se reescribe al exportar con codificación UTF-8.

Preguntas frecuentes

¿Por qué no existe una conversión XML a JSON "correcta" y única?

XML no tiene tipo array: elementos <item> repetidos y un <item> suelto tienen la misma forma una vez pierdes el recuento, y XML no puede decir "esta lista es siempre una lista" sin un esquema. Todo conversor debe adivinar, y las suposiciones difieren. Por eso varios conversores en línea producen JSON distinto del mismo archivo; esta página elige una convención documentada y la sigue de forma estable en ambos sentidos.

¿La herramienta entiende esquemas XSD o DTD?

No. Lee solo el documento de instancia — elementos, atributos y texto tal como están escritos. No consulta un XSD para decidir si un elemento de una sola aparición debería seguir siendo un array ni resuelve entidades externas. Si tu consumidor necesita conversión guiada por esquema, harás falta un conversor que cargue el esquema.

¿Qué pasa con archivos XML muy grandes?

Todo corre en memoria del navegador, así que un archivo de decenas de megabytes parseará pero puede ir lento al convertir, y JSON.stringify vuelve a duplicar el consumo. Para feeds de gigabytes, la respuesta honesta es un conversor de streaming en servidor; esta herramienta está pensada para archivos de configuración, payloads de API y XML de tamaño documento.

¿Puedo convertir JSON de vuelta a XML y recuperar mi archivo?

Dentro de la conversión documentada, sí — el formato de esta herramienta viaja de ida y vuelta: convierte a JSON, cambia un valor, convierte de nuevo, y atributos, elementos repetidos y texto salen con la misma forma con la que empezaste. Archivos de otros conversores con otras convenciones (por ejemplo prefijos "@" o "_" para texto) pueden requerir ajustes manuales.

¿Se sube algo a un servidor?

No. El análisis y la conversión son JavaScript puro más el DOMParser del navegador, ejecutándose enteramente en tu dispositivo. Tus documentos —y cualquier credencial en un XML de configuración— nunca salen de tu máquina.