¿Se permiten espacios en blanco dentro de las etiquetas XML/HTML?

2 minutos de lectura

Avatar de usuario de Channel72
canal72

Sé cómo se manejan los espacios en blanco en los nodos de texto para XML y HTML, pero no estoy seguro acerca de los espacios en blanco dentro de los elementos de etiqueta. Obviamente, los espacios en blanco se usan dentro de las etiquetas para separar los atributos, pero ¿es válido tener espacios en blanco después de ‘‘?

Por ejemplo:

<  foo  >
< /foo >

O incluso:

<foo>
< /  foo >

¿Estas etiquetas son XML válidas? ¿Qué pasa con HTML, suponiendo que fueran nombres de etiquetas HTML reales?

los especificación (sección 3.1 Etiquetas de inicio, etiquetas de finalización y etiquetas de elementos vacíos) dice que no hay espacio en blanco entre el '<' y el nombre de la etiqueta, entre '</' y el nombre de la etiqueta, o dentro '/>'. Sin embargo, puede agregar un espacio en blanco después del nombre de la etiqueta:

<foo            >
</foo        >
<bar
/>

  • ¿Es válido entonces dividir las etiquetas HTML largas en líneas separadas? Por ejemplo: <a heref="/something/" (newline, indent) title="something"> (newline) </a> — por ejemplo, en el caso de etiquetas largas que contengan código PHP en su interior, para que sea más legible.

    – Yo no sé mejor

    9 de julio de 2012 a las 0:31


  • @fakaff: Sí, eso es válido. Los saltos de línea, las tabulaciones y los espacios son todos caracteres de espacio en blanco, y puede tener tanto espacio en blanco como desee después del nombre de la etiqueta y entre los atributos (e incluso alrededor del = en un atributo).

    – Guffa

    9 de julio de 2012 a las 0:36

Avatar de usuario de Dan Breslau
dan breslau

</ y /> son tokens, por lo que el espacio en blanco entre los dos caracteres sería un error de sintaxis. Y como señaló Guffa, no se permiten espacios en blanco entre el token de apertura y el nombre. Pero está bien agregar espacios en blanco entre la etiqueta del elemento y el cierre >(o />) ficha.

EDITAR para reflejar la cita correcta de Guffa de la especificación XML.

el html[5] estándar parece estar de acuerdo exactamente con el estándar XML, como lo describe Guffa…

http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#start-tags

No puede comenzar con un espacio, pero puede (opcionalmente) terminar con uno (antes del segundo paréntesis angular, que cierra la primera etiqueta).

¿Ha sido útil esta solución?