1. Inicio
  2. Herramientas para desarrolladores
  3. Formatear XML

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.

Acción
Opciones

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

ErrorCausaSolució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 &amp; o una sección CDATA
Varios elementos raízDos <item> al mismo nivel sin contenedorEnvué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ónEspacios o BOM antes de <?xmlLa 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 &amp;, igual que &lt; 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.