fjh: So, jetzt nochmal langsam ;-)

Beitrag lesen

Hallo nochmal,

also, im XML-File benötigst Du: ö
Soweit waren wir ja dank Simon schon ;-)

Der XML-Parser macht daraus dann ö
So bekommt der XSLT-Prozessor das übergeben und macht daraus wieder:
ö

Im Browser wird dies dann natürlich als ö angezeigt, weil der wieder das Entity auflöst. Im Source steht allerdings: &#246.

Und so ist es auch korrekt, da ein XSLT-Prozessor Markup-Zeichen bei der Ausgabe maskiert: also aus & amp; macht.

Um dies zu vermeiden, benötigst du nun das Attribut "disable-output-escaping" mit dem Wert "yes":

<xsl:template match="/">
    <xsl:value-of select="/data/." disable-output-escaping="yes"/>
  </xsl:template>

Das Ergebnis ist dann das Gewünschte: &#246;

ABER: Der IE zeigt Dir natürlich wieder an: ö, weil er das Entity &#246; beim Parsen wieder auflöst. Im Quellcode ist es aber korrekt.

So, nun musst du Dir nur noch raussuchen, was Du erreichen möchtest:

  • Dass es im Browser aussieht wie &#246; => ohne disable-output-escaping="yes"
  • Dass im Quelltext steht &#246; => mit disable-output-escaping="yes".

So, ich hoffe nun sind alle Klarheiten beseitigt ;-)

Gruß
Franz