Formatear y validar XML
Pega tu XML para ordenarlo con sangría legible, comprobar si está bien formado o comprimirlo en una sola línea. Sirve para sitemaps, feeds RSS, SVG, respuestas SOAP, archivos de configuración o facturas electrónicas.
Cómo formatear XML
Pega el XML en el cuadro de entrada: el resultado se actualiza al momento. Elige «Formatear» para obtener una versión indentada (con 2 o 4 espacios, o tabuladores) o «Minificar» para eliminar los espacios entre etiquetas y reducir su tamaño. Si el documento tiene un error de sintaxis, verás el mensaje del analizador y la línea aproximada donde ocurre. El análisis se hace en tu navegador, así que puedes usarlo con datos internos sin subirlos a ningún sitio.
Cómo funciona
Primero, el texto se analiza con el DOMParser del navegador, el mismo componente que lee los SVG y los feeds; si encuentra un error, lo muestra y se detiene. Después, un tokenizador separa declaraciones (<?xml…?>), comentarios, secciones CDATA, etiquetas de apertura, de cierre y autocerradas, y texto. Cada etiqueta de apertura aumenta un nivel de sangría y cada cierre lo reduce. Los elementos que solo contienen texto se mantienen en una línea (<loc>…</loc>) para que el resultado sea compacto y legible. El contenido de CDATA y los comentarios se copian sin tocar.
Ejemplo
Entrada en una sola línea:
<pedido id="17"><cliente>Ana</cliente><total moneda="EUR">42.50</total></pedido>
Resultado formateado con 2 espacios:
<pedido id="17">
<cliente>Ana</cliente>
<total moneda="EUR">42.50</total>
</pedido> Errores de XML más comunes
| Error | Causa | Solución |
|---|---|---|
| Etiqueta sin cerrar o mal anidada | <a><b></a></b> | Cierra en orden inverso: <a><b></b></a> |
| Carácter & sin escapar | <n>Pan & vino</n> | Usa & o una sección CDATA |
| Varios elementos raíz | Dos <item> al mismo nivel sin contenedor | Envuélvelos en un único elemento |
| Atributo sin comillas | <img ancho=200/> | ancho="200" |
| Mayúsculas distintas | <Nombre>…</nombre> | XML distingue mayúsculas: deben coincidir |
| Texto antes de la declaración | Espacios o BOM antes de <?xml | La declaración debe ser lo primero del archivo |
Para escapar un fragmento de texto antes de insertarlo en XML usa escapar cadenas (modo XML) o consulta la tabla de entidades HTML. Si trabajas con datos en otros formatos, tienes también formatear JSON y minificar HTML; y si solo quieres el texto de un documento marcado, HTML a texto elimina las etiquetas.
Límites
- No valida contra DTD ni XSD: un XML puede estar bien formado y aun así no cumplir el esquema que espera un sistema (por ejemplo, el de una factura electrónica).
- En documentos con contenido mixto (texto y etiquetas dentro de un mismo párrafo, como XHTML), el formateo añade saltos de línea que pueden cambiar los espacios visibles.
- Archivos muy grandes (decenas de MB) pueden tardar unos segundos, ya que todo se procesa en tu dispositivo.
Preguntas frecuentes
¿Qué diferencia hay entre XML bien formado y XML válido?
Bien formado significa que cumple la sintaxis (etiquetas cerradas y anidadas, un único elemento raíz, atributos entre comillas). Válido significa además que cumple un esquema (DTD o XSD). Esta herramienta comprueba que esté bien formado, no lo valida contra un esquema.
¿Formatear cambia el contenido del XML?
Solo añade o quita espacios entre etiquetas. En la mayoría de formatos (configuración, sitemaps, RSS) no importa, pero si un elemento usa xml:space="preserve" o contenido mixto con texto y etiquetas, revisa el resultado.
¿Por qué da error un «&» en mi XML?
Porque & inicia una entidad. Dentro de texto o atributos debe escribirse &, igual que < para «<». Puedes escapar el texto con la herramienta de escapar cadenas.
¿Mis datos se envían a algún servidor?
No. El análisis se hace con el DOMParser de tu navegador y el formateo con JavaScript local; el XML no sale de tu dispositivo.