it-swarm.com.de

Leerzeichen innerhalb von XML/HTML-Tags

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?

45
Channel72

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
/>
60
Guffa

</ 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.

8
Dan Breslau

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

5
sisu

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).

0