Umlautkonvertierung direkt mit xsl möglich?
Chris
- xsl
0 fjh0 Chris0 Susanne Jäger0 fjh0 Chris
Hi! Bisher hat mir Selfhtml sehr geholfen, doch nun stehe ich an einem Problem, zu dem ich auf der Seite nichts finden konnte:
Ich konvertiere mit einem xsl-stylesheet xml(latin-1) in html(latin-1). Die xml enthalten aber Umlaute, die in html nur als &*uml; erscheinen dürfen. (Wird hier unbedingt benötigt!). Kann ich die Umlaute direkt mit xsl konvertieren?
Also zum Beispiel per xsl:output Attribut, oder per template? Beim Template wüsste ich im Moment nicht, wie!!! Oder hilft mir die translate()? Nur: Wie bringe ich translate bei, ein Zeichen(z.B. ä) durch mehrere Zeichen aufs mal (ä) zu ersetzen?
Danke für Hilfe, Gruss, Chris
Hi,
Also zum Beispiel per xsl:output Attribut,
genau per xsl:output-ELEMENT:
<xsl:output method="html"/>
wandelt Dir alle Umlaute in die HTML-Entity-Referenzen
Gruß
Franz
Tut es leider nicht, method="html" hatte ich von Beginn an drin... Es bleiben einfach alle Umlaute so wie sie sind. Habe mir zuerst auch gedacht, dass dies schon reichen sollte, aber scheinbar braucht es mehr!
Weiss sonst noch jemand (oder du einen anderen, aber danke für die Mühe!) einen Tipp?
Gruss, Chris
<xsl:output method="html"/>
wandelt Dir alle Umlaute in die HTML-Entity-Referenzen
Hallo Chris,
Tut es leider nicht, method="html" hatte ich von Beginn an drin... Es bleiben einfach alle Umlaute so wie sie sind. Habe mir zuerst auch gedacht, dass dies schon reichen sollte, aber scheinbar braucht es mehr!
Leider keine Lösung für dein Problem, aber dafür eine Rückfrage.
Kannst du etwas genaueres zu dem "scheinbar braucht es mehr" sagen?
Ich habe die Umlautfrage nämlich vor ein paar Tagen mal recherchiert und bin zu der Überzeugung gekommen, dass die Verwendung von &entities; bei korrekter Auslieferung des verwendeten Zeichensatzes überflüssig ist.
Gruß Susanne
Hallo,
Tut es leider nicht, method="html" hatte ich von Beginn an drin... Es bleiben einfach alle Umlaute so wie sie sind. Habe mir zuerst auch gedacht, dass dies schon reichen sollte, aber scheinbar braucht es mehr!
Nein, es braucht nicht mehr. Wenn Dein XSLT-Prozessor (welchen nimmst Du eigentlich?) dieses Element unterstützt und es nicht geht, hat er einen Bug. Saxon z.B. wandelt die Umlaute, Xalan auch und MSXML (afaik) auch....
Wie sieht denn Dein Sytelsheet im relevanten Teil aus? Vielleicht liegt es an einem Schreib-, Tipp, Syntaxfehler. Du
Gruß
Franz
Hallo!
Nein, es braucht nicht mehr. Wenn Dein XSLT-Prozessor (welchen nimmst Du eigentlich?) dieses Element unterstützt und es nicht geht, hat er einen Bug. Saxon z.B. wandelt die Umlaute, Xalan auch und MSXML (afaik) auch....
Ich arbeite mit dem LibXML
Wie sieht denn Dein Sytelsheet im relevanten Teil aus? Vielleicht liegt es an einem Schreib-, Tipp, Syntaxfehler. Du
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:str="http://exslt.org/strings"
>
<xsl:import href="../xsl/date.format-date.template.xsl"/>
<xsl:output method="html" encoding="iso-8895-1"/>
<xsl:template...
Und als Antwort an Susanne:
Diese Dateien werden häufig unter verschiedenen Personen ausgetauscht, zur Nachbearbeitung. Der Austausch gescchieht zwischen Win98, Win2000, OS 9 und OS x. Da passieren dann eben Fehler, wenn Umlaute drin sind, weil OS 9 nicht genau latin-1 verwendet!!!
Mögl. Lösung: Habe encoding auf "ASCII" gestellt, dann funktionierts insofern, dass er die Umlaute in Nummernentities umwandelt.
Ich danke euch für eure Beteiligung!
Gruss, Chris