Blog
Español

Convertir XML a JSON online — Atributos, arrays y Unicode

Convierte atributos XML en claves @ y elementos repetidos en arrays

Funciona en tu navegador · no se sube nada

Los atributos usan @nombre y el texto mixto, #text. Los hermanos con el mismo nombre se convierten en arrays. Los valores se quedan como cadenas. No se conserva el orden exacto del contenido mixto. No se admiten DTD.

Resultado

Cómo se usa

  1. Pega un documento XML con un único elemento raíz.
  2. Revisa las claves de atributo y los arrays de elementos repetidos.
  3. Copia el JSON resultante en tu aplicación o herramienta de análisis.

Reglas de conversión

La etiqueta raíz se mantiene como clave exterior del JSON. Los atributos llevan el prefijo @, como @id. Los hijos con el mismo nombre dentro de un mismo padre se convierten en arrays. Un elemento sin atributos ni hijos pasa a ser una cadena, y un elemento vacío, una cadena vacía. El CDATA y las referencias de carácter estándar de XML se leen como texto.

Cuando un elemento tiene hijos, su texto directo se reúne en #text. Los espacios en blanco que solo sirven para dar formato alrededor de los hijos se omiten. Esto no conserva el orden relativo entre el texto y los elementos anidados en el contenido mixto. Los comentarios y las instrucciones de procesamiento se omiten. Los prefijos de espacio de nombres y los atributos xmlns mantienen su nombre original, sin una reestructuración consciente de los espacios de nombres.

Ejemplos

<r><item>한글</item><item>中文😀</item></r> produce un array item dentro de r. <price currency="KRW">001</price> produce @currency con KRW y #text con la cadena 001.

Validación y límites

Las etiquetas sin cerrar, las raíces múltiples y las entidades desconocidas producen un error. No se admiten las declaraciones DTD ni de entidades. La entrada admite como máximo un millón de caracteres y 64 niveles de anidamiento. Esta conversión es cómoda para inspeccionar datos, pero no es una serialización de XML sin pérdidas. El resultado es texto inerte y toda la conversión ocurre en tu navegador.

Preguntas frecuentes

¿Los valores que parecen números se convierten en números?

No. El texto de los elementos y los valores de los atributos se quedan como cadenas, así que se conservan los ceros iniciales en valores como 001.

¿Se conserva el orden del contenido mixto?

No. El texto directo se reúne en #text. No se conserva la posición relativa entre ese texto y los elementos hijos.

¿Puede cargar DTD o entidades externas?

No. Las declaraciones DOCTYPE y ENTITY se rechazan. La herramienta no descarga documentos externos ni expande entidades declaradas.

¿Qué pasa con los comentarios del XML?

Se omiten, igual que las instrucciones de procesamiento. Solo pasan al JSON los elementos, los atributos y el texto.

¿Echas en falta alguna herramienta?