908 Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Wenn ich einen Text per SimpleXML in eine XML-Datei (<?xml version="1.0"
encoding="UTF-8"?>) speicher, dann werden aus < > und & von allein &lt; &gt; und
&amp;
" und ' bleiben aber unverändert.
Warum werden < > und & automatisch umgeschrieben? (Ist das immer so, oder hängt
das von der Installation auf dem Server ab?)
Und warum sind " und ' (die ja auch XML-eigene Zeichen sind) nicht betroffen?

1 Antwort

0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Warum werden < > und & automatisch umgeschrieben? (Ist das immer so, oder hängt das von der Installation auf dem Server ab?)
Und warum sind " und ' (die ja auch XML-eigene Zeichen sind) nicht betroffen?
Ein Blick in die W3C Recommendations für XML Punkt 2.4: Character Data and Markup definiert, dass < und & so gut wie nie verwendet werden dürfen. > hingegen ist nicht zwingend notwendig, wird aber trotzdem gern auch maskiert - das ist also SimpleXMLs Entscheidung. " und ' müssen genausowenig maskiert werden.

Macht auch alles Sinn: ein Tag wird immer mit einem < eingeleitet - würde dieses Zeichen also im Tag-Inhalt auftauchen könnte keiner mehr zweifelsfrei entscheiden, ob es noch zum Text gehört oder ob ein neuer Tag grad anfängt. Dasselbe mit & - damit wird immer eine Entity eingeleitet.
...