Thomas J.S.: XSL:FO und XML: Unicode wird nicht interpretiert (die zweite)

Beitrag lesen

Hallo,

Aber das funktioniert nicht bei japanischen Schriftzeichen, da diese in der XML-Datei codiert vorliegen. Das Problem:

Daten in der XML-Datei:
<key><![CDATA[&#12525;&#12472;&#12454;]]></key>
Auslesen in der XSL-Datei:
<xsl:value-of select="key"/>  oder  <xsl:value-of select="key" disable-output-escaping="yes"/> (gleicher Effekt)
--> Anzeige im Pdf: &#12525;&#12472;&#12454;
Aber gewünschte Anzeige: シルバ  (oder was ähnliches)

Wenn bei:
<key><![CDATA[&#12525;&#12472;&#12454;]]></key>

und
<xsl:value-of select="key" disable-output-escaping="yes"/>

dasselbe Ergebnis rauskommt wie bei:
<xsl:value-of select="key"/>

verwendest du einen fehlerhaften XSL-Prozessor.

Dein Problem ist, dass du nach der Transformation ebnfalls XML hast und so auf die das < und & achten musst.

Wenn es nur um die Zeichen < und > ginge könntest du es noch so hinbekommen:

<key><![CDATA[&#12525;&#12472;&#12454;<<<<<<  xcyvv  gfhsdf >>>>>>]]></key>

<xsl:value-of select="translate(key, '&lt;&gt;', '&#8249;&#8250;')" disable-output-escaping="yes" />

Ausgabe: ロジウ‹‹‹‹‹‹ xcyvv gfhsdf ››››››

Das Problem besteht aber bei &, denn das kannst du nicht ersetzen, da du damit auch die & bei den Zeichenreferenzen ersetzen würdest.
Außer daß man ein Script schreibt, welches auf &# achtet und nur andere & ersetzt, fällt mir jetzt nichts ein (bzw. schon: die Verwendung vom XSLT 2, wo du diese Ersetzungen mit einem regulären Ausdruck lösen könntest)

Grüße
Thomas