Conversor XML ↔ JSON
Convertir
Un conversor XML/JSON bidireccional que preserva lo que la mayoría de conversores pierde: atributos, contenido mixto, elementos repetidos. Los atributos se vuelven claves con prefijo `@` (configurable), así `<book id="1">` se vuelve `{"@id": "1"}`. Elementos hijos repetidos se colapsan en arrays. El contenido de texto junto a atributos va a una clave `#text` (también configurable). El lado XML usa el `DOMParser` nativo del navegador — el mismo code path que tu navegador usa para respuestas `application/xml`, así que namespaces, entidades y CDATA todos funcionan. El lado JSON revierte las mismas convenciones para round-tripping.
Cómo usar
- Elige la dirección. Suelta XML (o JSON) — datos de muestra a un clic.
- Ajusta el prefijo de atributo y la clave de texto si apuntas a un esquema específico (`x2js`, `fast-xml-parser`, custom).
- JSON→XML te deja poner un nombre de elemento root y togglear la declaración `<?xml ... ?>`. Copia cuando estés listo.
Preguntas frecuentes
- ¿Por qué prefijar atributos?
- Porque JSON no distingue nativamente atributos de elementos hijos. Prefijar (con `@`, `_`, o lo que quieras) hace el round-trip lossless — puedes convertir XML→JSON→XML y obtener el mismo documento. Sin la convención, atributos colisionarían con nombres de elementos hijos.
- ¿Maneja contenido mixto (`<p>hello <b>world</b>!</p>`)?
- Parcialmente. Texto puro se vuelve string; hijos elemento con texto se vuelven `{ #text: '...' }` junto a los hijos. Texto y elementos intercalados (como `hello <b>world</b>!`) colapsan al texto unido en la clave `#text`, que round-trips pero pierde el orden original. Para documentos con contenido mixto pesado (HTML, DocBook), un parser dedicado es mejor.
Herramientas relacionadas
Conversor de Unidades CSS
Convierte entre px, rem, em, pt, vw, vh y % usando tu propio tamaño de fuente y viewport.
Conversor JSON ↔ YAML
Convierte JSON a YAML o YAML a JSON — elige la indentación y copia el resultado.
Conversor de Tamaño de Datos
Convierte entre bytes, KB, MB, GB, TB — en decimal (1000) o binario (1024).
Conversor de Números Romanos
Convierte entre números arábigos y romanos de 1 a 3999.
Conversor de Bases Numéricas
Convierte números entre binario, octal, decimal y hexadecimal.
Conversor de Unidades
Convierte longitud, peso, temperatura, área, volumen, velocidad y tiempo.