100 % local: tus datos nunca salen de tu navegador

Formateador XML — lee un documento de una línea

Indenta XML sin tocar lo que dice. Un elemento que mezcla texto e hijos conserva su línea: en XML esos espacios forman parte del contenido.

Instantáneo Privado Cero cookies
Indentación

Entrada XML

Salida XML

Qué hace esta herramienta

El contenido de elementos se indenta; el contenido textual no.

<biblioteca><libro><titulo>Dune</titulo></libro></biblioteca>

se convierte en

<biblioteca>
  <libro>
    <titulo>Dune</titulo>
  </libro>
</biblioteca>

La regla que importa

Un elemento que mezcla texto y elementos hijos se deja en una sola línea, exactamente como se escribió.

<p>Hola <b>mundo</b> otra vez</p>

Eso se queda así. La razón es la diferencia entre XML y HTML que más sorprende: HTML colapsa los espacios, XML no. Un salto de línea insertado entre Hola y <b> no es presentación en XML: son datos de carácter, y permanecen en el documento para quien lo lea después.

Un formateador que indenta dentro de contenido mixto no embellece el documento: le edita el texto. Este indenta el elemento como bloque y deja su interior intacto.

Qué cuenta como indentación

Solo un nodo de texto totalmente blanco, que contenga un salto de línea, y que esté en un elemento sin texto significativo propio. Todo lo demás es contenido.

Un espacio único entre dos elementos de la misma línea — <b>x</b> <i>y</i> — se conserva. Nada en el documento dice que sea despreciable, y conservarlo cuesta un carácter.

xml:space="preserve" lo suspende todo, para ese elemento y cuanto contiene.

El prólogo vuelve como lo escribiste

La declaración, el DOCTYPE y cualquier instrucción de procesamiento se copian literalmente:

<?xml version="1.1" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE biblioteca SYSTEM "biblioteca.dtd">
<?xml-stylesheet href="style.xsl"?>

Las tres sobreviven. Reescribir una declaración como version="1.0" encoding="UTF-8" —lo que hacen muchas herramientas— reetiqueta el documento, y reetiquetar cambia la lectura de sus bytes.

Privado por diseño

Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.

Preguntas frecuentes

¿Por qué mi elemento <p> se quedó en una línea?
Porque mezcla texto y elementos hijos. XML no tiene equivalente del colapso de espacios de HTML: un salto de línea añadido entre `Hola` y `<b>` pasa a formar parte del texto y se queda ahí. El elemento se indenta como un bloque y su interior se deja tal como lo escribiste.
¿El formateo cambia mi documento?
No. Solo se reescribe el espacio en blanco que es pura indentación: un nodo de texto totalmente blanco, con un salto de línea, en un elemento sin texto significativo. Todo lo demás, incluidas las zonas `xml:space="preserve"`, vuelve carácter por carácter. Formatear y luego minificar devuelve el documento de partida.
Mi declaración dice ISO-8859-1. ¿Se reescribirá?
No. El prólogo — declaración, DOCTYPE, instrucciones de procesamiento — se copia literalmente. Reetiquetar un documento ISO-8859-1 como UTF-8 cambiaría la lectura de sus bytes: la versión, la codificación y `standalone` quedan como los declaraste.

Convertidores relacionados