Herramientas
Guías

Formateador y minificador de XML

Formateo

Embellece o comprime XML con fast-xml-parser. Normaliza la sangría, los atributos y las etiquetas de autocierre. Procesamiento XML puro, sin conversión de formato.

100 % del lado del cliente Sin backend

No se recuperan URLs remotas; pega tu JSON directamente.

Entrada
Salida
Pega XML a la izquierda y elige Formatear o Minificar.
En esta página

¿Qué es un formateador de XML?#

Un formateador de XML recompone un documento que ha perdido su estructura —una respuesta SOAP volcada en una línea, un feed RSS pasado por un proxy que colapsó los espacios en blanco, o un archivo de configuración editado en un cuadro de texto que no conservaba la sangría— y lo resangra para que la jerarquía de elementos sea visible. Lo opuesto, minificar, elimina cada byte de espacio en blanco entre etiquetas para que el documento sea lo más pequeño posible de transportar.

Lo que hace el viaje de ida y vuelta de XML más difícil de lo que parece es que un buscar-y-reemplazar ingenuo sobre < y > destruye información. El orden de los elementos, la declaración <?xml?>, los comentarios, las instrucciones de procesamiento como <?xml-stylesheet?>, el orden de los atributos y la diferencia entre <a></a> y <a/> todo lleva significado. Esta página usa fast-xml-parser en modo preserve-order, que analiza el documento en un árbol ordenado y lo reconstruye fielmente, así el formateo es una vista normalizada de tu documento, no una reordenada. Es también la razón por la que esta herramienta es distinta del conversor JSON/XML: hace un viaje de ida y vuelta puro de XML a XML, sin cambiar nunca el formato de los datos.

Cómo usarlo#

  1. Pega tu XML en el panel de Entrada a la izquierda. El marcador de posición muestra un documento <?xml?> mínimo si necesitas un punto de partida, o pulsa Ejemplo.
  2. Elige un botón de Modo en la barra de herramientas:
    • Formatear: analiza y luego reconstruye con sangría y saltos de línea. Los elementos vacíos colapsan a forma de autocierre (<a></a> pasa a <a/>), los atributos se conservan, los comentarios y la declaración sobreviven.
    • Minificar: analiza y luego reconstruye como una sola línea compacta sin espacios en blanco entre etiquetas ni salto de línea final.
  3. En modo Formatear, elige una Sangría: 2, 4 o tab.
  4. Lee el resultado en el panel de Salida. La cabecera muestra el tamaño de salida en caracteres; usa Copiar para llevártelo. Limpiar reinicia ambos paneles.

Si tu entrada no está bien formada —una etiqueta sin cerrar, un & suelto que debería ser &amp;—, la barra de estado reporta el error con una fila y columna aproximadas, así puedes encontrar el problema en vez de mirar una salida vacía.

Características principales#

  • Viaje de ida y vuelta fiel. El análisis en modo preserve-order conserva el orden del documento, la declaración <?xml?>, los comentarios y las instrucciones de procesamiento a lo largo del ciclo de formatear/minificar.
  • Ambos modos comparten un analizador. Formatear y minificar analizan de forma idéntica; solo difieren en cómo el constructor emite texto. Así, si minificar tiene éxito, formatear también, y viceversa.
  • Normalización de autocierre. Los elementos vacíos como <a></a> colapsan a <a/>, la forma canónica compacta, lo que hace obvias las diferencias de espacios en blanco al diffar.
  • Los valores siguen siendo cadenas. El analizador se configura con parseTagValue: false, así un nodo de texto true sigue siendo la cadena "true" y 007 sigue siendo "007". Sin coerción silenciosa de tipos que te sorprenda a la vuelta.
  • Gestiona entradas grandes fuera del hilo principal. Los documentos mayores de 1 MB se enrutan por un Web Worker, así la página se mantiene responsiva durante el análisis. Las entradas más pequeñas se ejecutan en línea.
  • Estrictamente lado del cliente. El analizador va empaquetado en la página; tu XML nunca sale del navegador.

Ejemplo detallado#

Un pequeño documento de configuración apiñado en dos líneas:

Entrada:

<?xml version="1.0"?><config><server host="example.com" port="443"/><feature name="cache"/><feature name="logs"></feature></config>

Pulsa Formatear con 2 espacios:

<?xml version="1.0"?>
<config>
  <server host="example.com" port="443"/>
  <feature name="cache"/>
  <feature name="logs"/>
</config>

Dos cosas destacan. La declaración <?xml version="1.0"?> sobrevivió al viaje de ida y vuelta en la parte superior del documento. Y tanto <feature name="logs"></feature> como el ya autocerrado <feature name="cache"/> aparecen ahora como <feature name="logs"/>: los elementos vacíos se normalizaron a forma de autocierre, así los dos features con la misma forma se ven de verdad iguales. Pulsa Minificar sobre la entrada original y obtienes la forma de transporte:

<?xml version="1.0"?><config><server host="example.com" port="443"/><feature name="cache"/><feature name="logs"/></config>

Cada byte de espacio en blanco decorativo se ha ido, pero el orden de los atributos en <server> queda intacto y la declaración sigue ahí.

Preguntas frecuentes#

¿Cuál es la diferencia entre esta herramienta y el conversor JSON/XML?#

Esta herramienta es XML entra, XML sale: embellece o minifica un documento XML y te devuelve XML. El conversor JSON/XML de este sitio traduce entre los dos formatos, convirtiendo XML en un árbol de objetos JSON o viceversa. Usa esta página cuando quieres el mismo formato, simplemente con mejor forma; usa el conversor cuando de verdad quieres cambiar de formato.

¿El formateado preserva mis comentarios?#

Sí. Los comentarios se capturan en el árbol ordenado durante el análisis y los reemite el constructor, así <!-- nota --> sobrevive tanto a Formatear como a Minificar. La instrucción de procesamiento <?xml-stylesheet?> también se conserva.

¿Por qué la ubicación del error a veces es aproximada?#

El analizador subyacente no expone posiciones de carácter para todos los modos de fallo, así que para algunos errores esta página solo puede reportar una fila y columna aproximadas extraídas del mensaje del analizador. Para una etiqueta de cierre que falta, la ubicación suele ser precisa; para fallos de análisis más exóticos puede quedar por defecto en la fila 1. El mensaje de error completo se muestra siempre, lo que típicamente basta para encontrar al infractor.

¿Puede manejar archivos XML muy grandes?#

Sí, hasta el límite de memoria de tu navegador. Las entradas por encima de 1 MB se analizan dentro de un Web Worker para que la interfaz no se congele. Para documentos de cientos de megabytes, espera que el análisis tarde un tiempo apreciable y memoria: es una herramienta de navegador, no un servidor de flujo.