Chris: XML-XSL und ISO

Hallo,

kann jemand mir helfen bitte ?
Was muss ich im XSL-Kopf definieren, damit nachher im HTML-Seite richtige deutsche Umlaute steht ?

Momentan steht so was in meinem XML-Datei
------------------------------------------------------------------

<?xml version="1.0" encoding="ISO-8859-1"?>
<iso>
<test iso="häuser"/>
</iso>

<!-- es soll eigentlich häuser heissen -->
------------------------------------------------------------------

und so sieht mein XSL aus :
------------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/">
<html>
<head>
<title>ISO</title>
</head>
<body>
<xsl:apply-templates select = "iso"/>
</body>
</html>
</xsl:template>

<xsl:template match="test">
<xsl:value-of select="@iso"/>
</xsl:template>
</xsl:stylesheet>

------------------------------------------------------------------
Nachdem Transformieren (mit XALANTransformer) bekomme ich eine HTML-Seite
------------------------------------------------------------------

<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ISO</title>
</head>
<body>
häuser
</body>
</html>

------------------------------------------------------------------

... und im Browser zeigt er falsch an !

Was muss ich machen , damit er im Browser anzeigt. Ich kann nur im XSL etwas ändern oder im HTML, aber am XML selber kann ich nicht. Irgendso ein Programm erstellt diese XML-Struktur für mich und es steht leider nicht die richtige deutsche Umlaute darin !
Kann jemand mir bitte helfen ? Danke

  1. Hallo,

    Was muss ich im XSL-Kopf definieren, damit nachher im HTML-Seite richtige deutsche Umlaute steht ?

    <xsl:output method="html" encoding="ISO-8859-1" ... />

    MfG, Thomas

    1. Hallo,

      Was muss ich im XSL-Kopf definieren, damit nachher im HTML-Seite richtige deutsche Umlaute steht ?

      <xsl:output method="html" encoding="ISO-8859-1" ... />

      MfG, Thomas

      Hallo Thomas,

      vielen Dank für Deine Antwort. Leider funktioniert das ebenfalls nicht.
      Mein XSL Head sieht mittlerweile so aus.
      <?xml version="1.0" encoding="ISO-8859-1"?>
      <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
      <xsl:output method="html" encoding="ISO-8859-1" />

      Ich versteh das nicht...

      Gruss

      Chris

      1. Hallo,

        vielen Dank für Deine Antwort. Leider funktioniert das ebenfalls nicht.

        Kennt Dein XSLT-Prozessor vielleicht noch eigene Anweisungen zum Setzen des Ausgabezeichensatzes? Bei PHP/Sablotron gibt es dafuer xslt_set_encoding().

        MfG, Thomas

  2. Du musst in der XML-DTD ganz oben vor den ELEMENT- und ATTLIST-Definitionen eine ENTITY angeben.
    Z.B.:
    <!ENTITY auml "&#228;">
    Der XML-Parser muss erst mal wissen, wie er das ä übersetzen muss.