web-dev-qa-db-fra.com

Espace blanc à l'intérieur des balises XML/HTML

Je sais comment les espaces blancs sont gérés dans les nœuds de texte pour XML et HTML, mais je ne suis pas sûr des espaces blancs à l'intérieur des éléments de balises eux-mêmes. Bien entendu, les espaces sont utilisés à l'intérieur des balises pour séparer les attributs, mais est-il valide d'avoir des espaces après "<" ou avant ">"?

Par exemple:

<  foo  >
< /foo >

Ou même:

<foo>
< /  foo >

Ces balises sont-elles valides XML? Qu'en est-il du HTML, à supposer qu'il s'agisse de noms de balises HTML réels?

45
Channel72

La spécification (section 3.1 Balises de début, balises de fin et balises d'éléments vides) indique qu'il n'y a pas d'espace blanc entre le '<' et le nom de la balise, entre '</' et le nom de la balise, ou à l'intérieur de '/>'. Vous pouvez ajouter un espace après le nom de la balise, cependant:

<foo            >
</foo        >
<bar
/>
60
Guffa

</ et /> sont des jetons. Les espaces entre les deux caractères constituent donc une erreur de syntaxe. Et comme Guffa a souligné , les espaces ne sont pas autorisés entre le jeton d'ouverture et le nom. Mais vous pouvez très bien ajouter des espaces entre la balise element et le jeton > (ou />) de clôture.

&EACUTE;DITE pour refléter la référence correcte de Guffa à la spécification XML.

8
Dan Breslau

La norme HTML [5] semble correspondre exactement à la norme XML, telle que décrite par Guffa ...

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

5
sisu

Vous ne pouvez pas commencer par un espace, mais vous pouvez (éventuellement) en terminer avec un (avant le deuxième crochet, qui ferme la première balise).

0
Sean Tank Garvey