DocumentosImágenesMediaHerramientas PDF

Convertir XML a JSON Online

Convierte XML a JSON en tu navegador. Ideal para migrar SOAP a REST, parsear RSS/Atom o procesar XML legado.

// Invalid XML: DOMParser is not defined
Procesado en tu navegador

XML a JSON: moderniza tu stack de datos

Migración SOAP a REST

Convierte respuestas de servicios web SOAP (XML) a JSON para integrarlas con APIs REST modernas y clientes JavaScript.

Feeds RSS y Atom

Parsea feeds RSS 2.0 y Atom 1.0 a JSON para procesarlos con JavaScript, almacenarlos en MongoDB o mostrarlos en apps web.

100% privado

Tu XML se procesa en tu navegador con el DOMParser nativo. Nunca sale de tu dispositivo.

XML legado

Procesa recursos Android (strings.xml, layouts), sitemaps, manifiestos SOAP o cualquier formato XML heredado.

Tres pasos, sin complicaciones

1

Pega tu XML

Pega cualquier XML válido: respuesta SOAP, feed RSS/Atom, sitemap.xml, manifiesto Android, o cualquier documento XML 1.0.

2

Conversión inteligente

Los atributos XML se convierten con prefijo @, el contenido de texto con #text, y los elementos repetidos se agrupan en arrays automáticamente.

3

Descarga o copia el JSON

Obtén un JSON estructurado listo para usar en tu API REST, base de datos NoSQL, o código JavaScript/Python.

¿Tienes dudas?

XML permite tanto elementos hijo como atributos para almacenar datos, lo que no tiene equivalente directo en JSON. La convención más adoptada (usada por xml2js en Node.js, xmltodict en Python, y la librería JAXB en Java) es prefijar los atributos con @: el elemento <user id="42" role="admin"> se convierte a {"user": {"@id": "42", "@role": "admin"}}. El contenido de texto de elementos mixtos (que tienen tanto atributos como texto) se coloca en la clave #text: <title lang="es">Hola</title> se convierte a {"title": {"@lang": "es", "#text": "Hola"}}. Esta convención es consistente con la especificación BadgerFish y con las herramientas más populares del ecosistema.

En XML, es perfectamente válido tener múltiples elementos hermanos con el mismo nombre: <items><item>A</item><item>B</item></items>. JSON no puede representar múltiples claves iguales en el mismo objeto (sería un JSON inválido según RFC 7159). La solución estándar es agruparlos en un array: {"items": {"item": ["A", "B"]}}. Un buen conversor detecta automáticamente cuando hay elementos repetidos y los convierte a array, aunque sean solo dos. Esto puede causar inconsistencias si a veces hay un solo elemento y a veces varios: el JSON tendría string en un caso y array en otro. La solución es normalizar siempre a array en los campos que lo requieran.

Los namespaces XML (definidos por el W3C en la recomendación 'Namespaces in XML 1.0', publicada en enero de 1999 y revisada en agosto de 2006) son una característica de XML sin equivalente en JSON. La representación más habitual es incluir el prefijo del namespace como parte del nombre de clave: el elemento <soap:Body xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> se convierte a {"soap:Body": {...}}. Las declaraciones de namespace (xmlns:prefix="uri") se tratan como atributos y aparecen con el prefijo @xmlns:prefix. Para casos de uso como migración de SOAP a REST donde los namespaces son omnipresentes, a menudo es necesario un post-procesado para eliminar los prefijos de namespace del JSON resultante.

CDATA (Character Data) es una sección especial en XML que permite incluir texto que contiene caracteres normalmente reservados (< > & ' ") sin necesidad de usar entidades XML (&lt; &gt; &amp;). La sintaxis es <![CDATA[contenido aquí]]>. CDATA se usa frecuentemente para incluir código HTML, JavaScript, SQL o cualquier texto con caracteres especiales dentro de un elemento XML. En la conversión a JSON, el contenido CDATA se trata como texto plano: las secciones CDATA se reemplazan por su contenido sin las marcas, y el resultado se coloca en el valor del campo JSON como un string normal. Si el XML tiene <descripcion><![CDATA[<b>Texto en negrita</b>]]></descripcion>, el JSON resultante es {"descripcion": "<b>Texto en negrita</b>"}.

La conversión ocurre en tu navegador usando el DOMParser nativo del navegador para parsear el XML y un serializer JSON personalizado. El DOMParser puede manejar archivos XML de varias decenas de MB en navegadores modernos (Chrome, Firefox, Edge). Para archivos grandes (más de 10 MB), el proceso puede tardar varios segundos. Para archivos XML muy grandes (más de 100 MB como sitemaps con cientos de miles de URLs o dumps de bases de datos en XML), recomendamos herramientas de streaming como xml2json en Node.js con streams, xmltodict en Python con el modo iterparse de xml.etree, o el procesador Saxon para XML de nivel empresarial.

Convertir XML a JSON: migración de SOAP a REST, feeds RSS y procesamiento de XML legado

XML (Extensible Markup Language) fue definido por el W3C en la recomendación XML 1.0 (publicada el 10 de febrero de 1998, actualmente en su quinta edición de noviembre de 2008). Durante la década de 2000, XML fue el formato universal de intercambio de datos: SOAP (Simple Object Access Protocol, especificación W3C de 2003) usaba XML como formato de mensaje, RSS 2.0 (lanzado por Dave Winer en 2002) y Atom 1.0 (RFC 4287, diciembre de 2005) distribuían feeds de noticias en XML, Android (lanzado por Google en 2008) usaba XML para layouts, strings y manifiestos de aplicación, y SVG (Scalable Vector Graphics, W3C 1.1 de 2003) es XML. La transición a JSON como formato de intercambio principal comenzó con la popularización de AJAX y la especificación de JSON por Douglas Crockford (RFC 4627, julio de 2006, reemplazado por RFC 7159 en 2014). Hoy, la mayoría de nuevas APIs usan JSON/REST, pero millones de sistemas legados, servicios B2B y formatos estándar de la industria (UBL, HL7 FHIR en XML, SOAP, KML, GPX) siguen usando XML.

La conversión de XML a JSON no es trivial porque los dos modelos de datos tienen diferencias conceptuales fundamentales. XML es un modelo de árbol de nodos (elementos, atributos, texto, comentarios, instrucciones de procesamiento, CDATA) donde los elementos pueden tener tanto atributos como contenido hijo y de texto simultáneamente. JSON es un modelo de árbol de valores (objetos, arrays, strings, números, booleanos, null) sin concepto de atributos separados del contenido. Las principales convenciones para la conversión son: atributos XML como claves con prefijo @ (convención BadgerFish/xml2js); texto de elementos mixtos en la clave #text; elementos repetidos agrupados en arrays; namespaces preservados como prefijos de clave; CDATA tratado como texto plano. La convención BadgerFish, documentada en badgerfish.de y adoptada por las bibliotecas más populares, es el estándar de facto para esta conversión.

Para casos de uso de producción con alta escala, las herramientas más usadas son: xml2js (Node.js, más de 25 millones de descargas mensuales en npm), xmltodict (Python, basado en xml.etree de la biblioteca estándar), JAXB (Java, parte del Jakarta EE), y json-xml (Go). Para migración de servicios SOAP legados a REST, herramientas como Apache Camel, MuleSoft Anypoint, y AWS API Gateway con transformaciones de payload ofrecen integración nativa de XML a JSON en el nivel de middleware. Para sitemap.xml (el protocolo Sitemaps definido en sitemaps.org, adoptado por Google en 2005), la conversión a JSON permite procesar listas de URLs con JavaScript sin un parser XML. Convertir.ai usa el DOMParser nativo del navegador (API estándar del W3C, disponible en todos los navegadores modernos desde 2004) para parsear el XML y un serializer propio para generar JSON, garantizando privacidad total al no enviar ningún dato al servidor.