Ich weiß, wie Leerzeichen in Textknoten für XML und HTML behandelt werden, aber ich weiß nicht, ob Leerzeichen in Tag-Elementen selbst vorhanden sind. Offensichtlich werden Leerzeichen innerhalb von Tags verwendet, um Attribute zu trennen. Sind Leerzeichen jedoch nach '<' oder vor '>' zulässig?
Zum Beispiel:
< foo >
< /foo >
Oder auch:
<foo>
< / foo >
Sind diese Tags gültiges XML? Was ist mit HTML, vorausgesetzt, es handelt sich um tatsächliche HTML-Tag-Namen?
Die Spezifikation (Abschnitt 3.1 Start-Tags, End-Tags und Tags für leere Elemente) besagt, dass zwischen dem '<'
und dem Tag-Namen, zwischen '</'
und dem Tag-Namen oder innerhalb von '/>'
kein Leerzeichen ist. Sie können jedoch Leerzeichen hinter dem Tag-Namen hinzufügen:
<foo >
</foo >
<bar
/>
</
und />
sind Token, sodass ein Leerzeichen zwischen den beiden Zeichen ein Syntaxfehler wäre. Und wie Guffa wies darauf hin , dass Leerzeichen zwischen dem Eröffnungsmarker und dem Namen nicht zulässig sind. Sie können jedoch Leerzeichen zwischen dem Element-Tag und dem schließenden Token >
(oder />
) hinzufügen.
EDIT, um Guffas korrektes Zitieren der XML-Spezifikation anzuzeigen.
Der HTML-Standard scheint genau mit dem von Guffa beschriebenen XML-Standard zu übereinstimmen.
http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#start-tags
Sie können nicht mit einem Leerzeichen beginnen, können jedoch (optional) mit einem Leerzeichen enden (vor der zweiten spitzen Klammer schließt das erste Tag).