2010-07-23 93 views
38

sé como espacios en blanco se maneja en los nodos de texto para XML y HTML, pero estoy seguro acerca de los espacios en blanco dentro de los elementos de la etiqueta en sí. 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 '<' o antes de '>'?El espacio en blanco dentro de las etiquetas XML/HTML

Por ejemplo:

<foo> 
</foo> 

O incluso:

<foo> 
</foo > 

¿Son estas etiquetas XML válido? ¿Qué pasa con el HTML, suponiendo que fueran nombres reales de etiquetas HTML?

Respuesta

49

El specification (section 3.1 Start-tags, end-tags, and empty-element tags) dice que no hay ningún espacio en blanco entre el '<' y el nombre de la etiqueta, entre '</' y el nombre de la etiqueta, o en el interior '/>'. Puede agregar espacio en blanco después de que el nombre de la etiqueta, sin embargo:

<foo   > 
</foo  > 
<bar 
/> 
+0

Vaya. Eso me enseñará a verificar dos veces la especificación ... +1 –

+0

¿Es válido entonces dividir etiquetas HTML largas en líneas separadas? Por ejemplo: ' (newline)' - por ejemplo, en el caso de etiquetas largas que contienen código PHP adentro, para hacerlo más legible. – iDontKnowBetter

+1

@fakaff: Sí, eso es válido. Los saltos de línea, las pestañas y los espacios son todos caracteres 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 de '=' en un atributo). – Guffa

8

</ y /> son fichas, por lo que los espacios en blanco entre los dos personajes sería un error de sintaxis. Y como Guffa pointed out, no se permite el espacio en blanco entre el token de apertura y el nombre. Pero está bien agregar espacios en blanco entre la etiqueta del elemento y el token de cierre > (o />).

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

0

No puede comenzar con un espacio, pero puede (opcionalmente) finalizar con uno (antes del segundo ángulo, que cierra la primera etiqueta).

+0

Esta respuesta no agrega nada a las existentes. – Pyves

Cuestiones relacionadas