Formateador XML
Pega XML y se maqueta solo: el texto y los atributos quedan intactos.
XML formateado
Cómo se usa
- Pega tu XML en la caja: se formatea mientras escribes, sin ningún botón que pulsar.
- Elige Formatear o Minificar y 2 o 4 espacios de sangría; el resultado se actualiza al instante.
- Si la estructura está rota, el mensaje indica la línea, la columna y el elemento. Copia el resultado o descárgalo como archivo .xml.
Ejemplo
Entrada
<pedido id="A-1042"><cliente><nombre>Ada Lovelace</nombre><correo>ada@example.com</correo></cliente><articulos><articulo sku="X-1" cantidad="2">Engranaje de la máquina analítica</articulo><articulo sku="X-2" cantidad="1">Juego de tarjetas perforadas</articulo></articulos></pedido>
Formateado
<pedido id="A-1042"> <cliente> <nombre>Ada Lovelace</nombre> <correo>ada@example.com</correo> </cliente> <articulos> <articulo sku="X-1" cantidad="2">Engranaje de la máquina analítica</articulo> <articulo sku="X-2" cantidad="1">Juego de tarjetas perforadas</articulo> </articulos> </pedido>
Solo con las reglas por defecto: un elemento por línea y dos espacios por nivel. El orden de los atributos, las comillas y los valores no se tocan, y tampoco el texto dentro de <nombre>.
Reglas, límites y problemas conocidos
- Solo se comprueba la estructura: emparejamiento de etiquetas, comillas, duplicados y separación de atributos, nombres de elementos y atributos y sintaxis de entidades. Sin validación DTD o XSD, sin expansión de entidades y sin comprobación de enlaces de prefijos de espacio de nombres.
- Solo se reescribe el espacio en blanco estructural: el que hay entre atributos y el que forma un elemento sin texto. El orden de los atributos, el estilo de comillas, los valores, las entidades, los comentarios, CDATA y el subconjunto interno del DOCTYPE se copian carácter a carácter.
- El contenido mixto nunca se resangra: en <p>Hola <b>tú</b>!</p> el espaciado se mantiene como se escribió, porque añadir saltos de línea cambiaría el texto. Lo mismo ocurre con xml:space="preserve", que se copia tal cual.
- Los elementos vacíos conservan la forma que escribiste: <a></a> no se contrae a <a/>, y <a/> no se expande. Los atributos no se ordenan y las comillas no se unifican.
- Minificar solo elimina el espacio en blanco estructural. El espacio del texto, los comentarios, CDATA y el DOCTYPE se conservan: no se quita nada de tu contenido.
- Una etiqueta, un comentario, un CDATA o un DOCTYPE sin cerrar al final de la entrada se notifica como aviso, no como error: sigues obteniendo un resultado. Los errores reales (etiquetas desemparejadas, valores de atributo sin comillas, un «&» suelto) son errores con línea y columna.
- Un fragmento (varios elementos de nivel superior o texto fuera de la raíz) se formatea y se notifica como fragmento. Una entrada sin ningún elemento es un error.
- Los números de línea y columna cuentan puntos de código Unicode, así que un emoji ocupa una columna. Solo el espacio, el tabulador, el salto de línea y el retorno de carro cuentan como espacio en blanco; U+3000 o U+00A0 dentro del texto son contenido y nunca se eliminan.
- No es HTML: las etiquetas de cierre omitidas como </li> o <br> se notifican como no cerradas. Sin subida de archivos, sin parámetros en la URL, sin historial, sin vista de árbol y sin conversión XML→JSON. Todo funciona en tu navegador: no se sube ni se guarda nada.
- Por encima de 200.000 caracteres el resultado se actualiza unos 0,6 s después de que dejes de escribir; el texto nunca se trunca. La salida usa LF y no termina en salto de línea; el formateo es idempotente.
Herramientas relacionadas
Lo que suele hacer falta después, una vez legible la estructura.