Formateador y Validador de HTML / XML
Pega HTML o XML y consíguelo perfectamente indentado, con errores de buena formación (XML) o advertencias de etiquetas sin cerrar (HTML) señalados.
1.227 visitas
Cómo funciona
El formateador recorre tu marcado y va siguiendo la profundidad de anidamiento a medida que avanza: cada etiqueta de apertura sube el contador de profundidad un nivel, y cada etiqueta de cierre correspondiente lo baja de nuevo. Cada línea de salida recibe un número de unidades de indentación inicial proporcional a su profundidad actual — una etiqueta a un nivel de profundidad recibe una unidad de indentación, una a cuatro niveles recibe cuatro, y así sucesivamente. Los nodos de texto, los comentarios y los atributos heredan la profundidad del elemento que los contiene, de modo que el resultado final refleja visualmente la estructura de árbol real del documento en lugar de un muro de texto ininterrumpido.
Por ejemplo, una línea apretada como <ul><li>A</li><li>B</li></ul> vuelve como <ul> en el nivel superior, con <li>A</li> y <li>B</li> escalonados un nivel cada uno, y el cierre </ul> de vuelta en el nivel superior — tres líneas en lugar de una, y la profundidad de cada una se lee de inmediato solo con su indentación. Los elementos vacíos como <br> o <img> nunca aumentan el contador de profundidad, ya que no tienen hijos en los que anidar nada.
Bueno saberlo
Elige el modo XML y el analizador es estricto: cualquier infracción de buena formación — una etiqueta sin cerrar, un anidamiento incorrecto, un carácter no válido — se informa con un mensaje de error específico en lugar de corregirse silenciosamente. Elige el modo HTML y la herramienta ejecuta en su lugar una comprobación de equilibrio de etiquetas lo más precisa posible, porque los propios navegadores analizan HTML con tolerancia y no existe un estado "no válido" equivalente que detectar. Esta separación refleja una diferencia real entre ambos formatos: la especificación de XML exige que un documento esté bien formado o sea rechazado por completo, sin término medio, mientras que HTML5 se diseñó deliberadamente para que pequeños errores de redacción — como olvidar una etiqueta de cierre — no rompan la página. Esa tradición permisiva es también la razón por la que <br/> es obligatorio en XML, pero <br> y <br/> son ambos HTML válido e intercambiable.
Esto es útil mucho más allá de ordenar marcado escrito a mano. HTML minificado obtenido de una página en vivo, una respuesta de API XML devuelta en una sola línea densa, o un archivo de configuración exportado sin ningún formato — todos se vuelven mucho más fáciles de leer, y mucho más fácil detectar una etiqueta mal colocada, una vez que se aplica la indentación basada en profundidad. Como la indentación se recalcula a partir de la estructura analizada en lugar de copiarse de la entrada, el resultado es consistente sin importar cuán inconsistente fuera el espaciado original.
Preguntas Frecuentes
¿Por qué el modo XML detecta errores que el modo HTML pasa por alto?
XML tiene una especificación estricta de buena formación: el analizador XML del navegador rechaza todo lo que la infrinja. El análisis de HTML es deliberadamente tolerante (un objetivo de diseño esencial para que la web no se rompa por pequeños errores), así que no existe un error estricto equivalente; esta herramienta hace en su lugar una comprobación de equilibrio de etiquetas lo más precisa posible para HTML.
¿Cómo decide la herramienta cuánto indentar cada línea?
Sigue la profundidad de anidamiento mientras analiza: abrir una etiqueta aumenta la profundidad en uno, cerrarla la reduce en uno, y cada línea se indenta en una cantidad proporcional a su profundidad en ese punto. Un elemento que está tres niveles dentro del árbol recibe tres unidades de indentación, sin importar cuán largas o cortas sean las etiquetas que lo rodean.
¿Por qué <br/> es obligatorio en XML pero opcional en HTML?
XML no tiene un concepto integrado de elemento "vacío" — toda etiqueta debe cerrarse explícitamente, ya sea con una etiqueta de cierre separada o con la barra de autocierre, o el documento no está bien formado. HTML5, en cambio, define una lista fija de elementos vacíos (br, img, input, hr y otros) que los navegadores ya saben que nunca tienen hijos, por lo que tanto <code><br></code> como <code><br/></code> se analizan de forma idéntica.
¿El formateo cambia mi contenido?
No — solo cambian los espacios en blanco y la indentación. Las etiquetas, atributos, texto y comentarios se conservan exactamente (los valores de los atributos se vuelven a escapar por seguridad, lo que solo puede cambiar los caracteres de comillas, nunca el valor en sí).
¿Funcionará en un documento muy anidado o minificado?
Sí — el enfoque basado en el seguimiento de profundidad no depende de cómo estuviera formateada originalmente la entrada ni de cuán profundamente esté anidada; un archivo minificado en una sola línea y uno indentado a mano de forma desordenada producen la misma salida limpia, ya que la indentación se recalcula a partir de la propia estructura de etiquetas en lugar de conservarse de la entrada.
Herramientas Similares
Reportar un Problema
Formateador y Validador de HTML / XML
Comentarios
Aún no hay comentarios — ¡sé el primero en escribir uno!