XSL/XML und Umlaute
Klaus-Werner Müller
- xsl
in meinem XSL-Stylesheet "includiere" ich eine XML-Datei durch
<xsl:apply-templates select="document(footer.xml')"/>
diese Datei sie wie folgt aus
<?xml version="1.0" encoding="UTF-8"?>
<div id="footer">
<span class="left">
&copy; 2004 Klaus-Werner M&uuml;ller - All rights reserved.
</span>
<span class="right">
Letzte &Auml;nderung: <my_lastupdate/>
</span>
</div>
das Stylesheet erzeugt eine html-Datei
der aus dem Footer generierte Teil sie dann so aus
<div id="footer">
<span class="left">
&copy; 2004 Klaus-Werner M&uuml;ller - All rights reserved.
</span>
<span class="right">
Letzte &Auml;nderung: 20. Mai 2004
</span>
</div>
das stellt natürlich der Browser nicht so da, wie ich es will
was mache ich falsch ?
Hallo,
diese Datei sie wie folgt aus
<?xml version="1.0" encoding="UTF-8"?>
<div id="footer">
<span class="left">
&copy; 2004 Klaus-Werner M&uuml;ller - All rights reserved.
</span>
<span class="right">
Letzte &Auml;nderung: <my_lastupdate/>
</span>
</div>
Das sollte eher so aussehen:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE div [
<!ENTITY Auml "Ä">
<!ENTITY uuml "ü">
<!ENTITY copy "©">
]>
<div id="footer">
<span class="left">
© 2004 Klaus-Werner Müller - All rights reserved.
</span>
<span class="right">
Letzte Änderung: <my_lastupdate/>
</span>
</div>
Oder endcoding="ISO-8859-1" verwenden und die Umlaute/Sonderzeichen direkt angeben.
MfG, Thomas
danke
die generierte html-Datei sieht dann so aus
<div id="footer">
<span class="left">
© 2004 Klaus-Werner Müller - All rights reserved.
</span>
<span class="right">
Letzte Änderung: 20. Mai 2004
</span>
</div>
aber das können die Browser leider so nicht anzeigen
sie müsste so aussehen
<div id="footer">
<span class="left">
© 2004 Klaus-Werner Müller - All rights reserved.
</span>
<span class="right">
Letzte Änderung: 20. Mai 2004
</span>
</div>
btw. UTF-8 muss sein
mfg
K-W
Hallo,
danke
die generierte html-Datei sieht dann so aus<div id="footer">
<span class="left">
© 2004 Klaus-Werner Müller - All rights reserved.
</span>
<span class="right">
Letzte Änderung: 20. Mai 2004
</span>
</div>aber das können die Browser leider so nicht anzeigen
Welche Exotenbrowser sind das?
Versuche es alternativ im Stylesheet mit <xsl:output encoding="Zeichensatz"/>
MfG, Thomas
keine Exoten-Browser, der Internet Explorer
die ganze Seite sieht wie folgt aus
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd">
<html><head><title>myTitle</title><link type="text/css" rel="stylesheet" href="common/styles/default.css" /></head><body><h1>myTitle</h1><div id="footer">
<span class="left">
© 2004 Klaus-Werner Müller - All rights reserved.
</span>
<span class="right">
Letzte Änderung: 20. Mai 2004
</span>
</div></body></html>
encoding in xsl:output ändert nihts
K-W
Hallo,
danke
die generierte html-Datei sieht dann so aus<div id="footer">
<span class="left">
© 2004 Klaus-Werner Müller - All rights reserved.
</span>
<span class="right">
Letzte Änderung: 20. Mai 2004
</span>
</div>aber das können die Browser leider so nicht anzeigen
Welche Exotenbrowser sind das?
Versuche es alternativ im Stylesheet mit <xsl:output encoding="Zeichensatz"/>
MfG, Thomas
Hi,
<?xml version="1.0" encoding="UTF-8"?>
Diese Encoding-Angabe
© 2004 Klaus-Werner Müller - All rights reserved.
Letzte Änderung: 20. Mai 2004
paßt nicht zur tatsächlichen Kodierung.
cu,
Andreas
das ist mir schon klar
das Problem ist, wie veranlasse ich das Gespann XSL/XML dazu
das richtige zu generieren
mfg
K-W
Hi,
<?xml version="1.0" encoding="UTF-8"?>
Diese Encoding-Angabe
© 2004 Klaus-Werner Müller - All rights reserved.
Letzte Änderung: 20. Mai 2004paßt nicht zur tatsächlichen Kodierung.
cu,
Andreas
Hi,
das Problem ist, wie veranlasse ich das Gespann XSL/XML dazu
das richtige zu generieren
indem man beim xsl:output-Element im Encoding-Attribut die gewünschte Codierung angibt.
Und, falls es überhaupt erwünscht ist, die XML-Deklaration auch von XSL erzeugen läßt (omit-xml-declaration-Attribut).
cu,
Andreas
das Encoding-Attribut ändert nichts, hab ich probiert
das Problem ist wohl meine zweistufige Architektur
(externes xml in Stylesheet includieren per
<xsl:apply-templates select="document ...."/>)
mache ich das ganze inline im Stylesheet selbst, klappt ja alles
sag jetzt nicht, dann mach es doch so ;-)
ich brauche eine modulare Struktur, damit Komponenten
(zum Beispiel der footer in diesen Beispiel) geändert werden können, ohne zu wissen, wie sie verwendet werden
gruss
K-W
Hi,
das Problem ist, wie veranlasse ich das Gespann XSL/XML dazu
das richtige zu generierenindem man beim xsl:output-Element im Encoding-Attribut die gewünschte Codierung angibt.
Und, falls es überhaupt erwünscht ist, die XML-Deklaration auch von XSL erzeugen läßt (omit-xml-declaration-Attribut).cu,
Andreas
Hallo,
das Problem ist wohl meine zweistufige Architektur
(externes xml in Stylesheet includieren per
<xsl:apply-templates select="document ...."/>)
Nein. Das Problem liegt wo anderes:
----------- zitat -------------------------
in meinem XSL-Stylesheet "includiere" ich eine XML-Datei durch
<xsl:apply-templates select="document(footer.xml')"/>
diese Datei sie wie folgt aus
<?xml version="1.0" encoding="UTF-8"?>
<div id="footer">
<span class="left">
&copy; 2004 Klaus-Werner M&uuml;ller - All rights reserved.
</span>
<span class="right">
Letzte &Auml;nderung: <my_lastupdate/>
</span>
</div>
----------- /zitat -------------------------
Man kann jetzt zu aller erst darüber steiten ob das eine XML-Datei sei oder nicht.
Aber wenn du schon HTML hast, wozu dann das <xsl:apply-templates select="document(footer.xml')"/> und warum nicht
<xsl:copy-of select="document(footer.xml')/*"/> ?
Dann stellt sich dir Frage warum du sowas verwendest: "M&uuml;ller" ?
Wenn du schon Unicode angibst, kannst du auch Unicode notieren:
ü = ü = ü
Dann stellt sich dir Frage warum folgende ausgabe _falsch_ sein sollte:
<div id="footer">
<span class="left">
© 2004 Klaus-Werner Müller - All rights reserved.
</span>
<span class="right">
Letzte Änderung: 20. Mai 2004
</span>
</div>
diese dagegen richt?
<div id="footer">
<span class="left">
© 2004 Klaus-Werner Müller - All rights reserved.
</span>
<span class="right">
Letzte Änderung: 20. Mai 2004
</span>
</div>
Grüße
Thomas
Hallo,
encoding in xsl:output ändert nihts
Folgt <xsl:output ... /> direkt nach <xsl:stylesheet ...> und welcher XSLT-Prozessor wird verwendet? Xalan ignoriert das beispielsweise, wenn ich mich richtig erinnere.
Ansonsten bliebe auch noch dieses Ausgangsdokument:
<?xml version="1.0" encoding="UTF-8"?>
<div id="footer">
<span class="left">
© 2004 Klaus-Werner Müller - All rights reserved.
</span>
<span class="right">
Letzte Änderung: <my_lastupdate/>
</span>
</div>
MfG, Thomas