Thorsten F.: Umlaute

Hallo Leute,

ich habe eine xm-Datei in der so einige Umlaute vorkommen.
Die sollen da auch drin stehen.
Wie kann ich jetzt in der xsl diese Umlaute auslesen und diese ersetzen.

Ein ä z.B durch "ä" .

Mit <xsl:when test="contains($variable,'ä')">

funktioniert das nicht.

Geht das überhaupt? Eine Idee?

Grüße,
Thorsten F.

  1. Wie kann ich jetzt in der xsl diese Umlaute auslesen und diese ersetzen.
    Ein ä z.B durch "&#228;" .

    Thorsten,
    Warum willst du das tun?
    Ich kann mir nicht so richtig einen sinnvollen Nutzen vorstellen.

    Live long and prosper,
    Gunnar

    --
    „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
    1. Zum Testen und rumprobieren und um mein xsl-Wissen zu erweitern.

      Grüße

  2. Hallo,

    ich habe eine xm-Datei in der so einige Umlaute vorkommen.
    Die sollen da auch drin stehen.
    Wie kann ich jetzt in der xsl diese Umlaute auslesen und diese ersetzen.

    Ein ä z.B durch "&#228;" .

    Eine Notwendigkeit dafuer gibt es nicht. Verwende das encoding-Attribut des Elements xsl:output und gib den gewuenschten Ausgabezeichensatz an.

    Mit <xsl:when test="contains($variable,'ä')">

    funktioniert das nicht.

    Diese Abfrage prueft lediglich, ob das Zeichen ä in $variable enthalten ist.

    Geht das überhaupt? Eine Idee?

    Unter XSLT 2.0 + XPath 2.0 sind Ersetzungen sehr einfach moeglich:

      
    <xsl:variable name="bla">Märchenerzähler</xsl:variable>  
    <xsl:value-of select="fn:replace($bla,'ä','&#228;')"/>
    

    Ersetzt werden alle Vorkommen von ä.

    XSLT 1.0 + XPath 1.0 bieten zur Ersetzung des ersten Vorkommens von ä:

      
    <xsl:value-of select="concat(substring-before($bla,'ä'),'&#228;',substring-after($bla,'ä'))"/>
    

    Weitere Vorkommen muessten rekursiv behandelt werden.

    MfG, Thomas

  3. Hallo,

    ich habe eine xm-Datei in der so einige Umlaute vorkommen.
    Die sollen da auch drin stehen.
    Wie kann ich jetzt in der xsl diese Umlaute auslesen und diese ersetzen.

    Ein ä z.B durch "&#228;" .

    Mit <xsl:when test="contains($variable,'ä')">

    funktioniert das nicht.

    Geht das überhaupt? Eine Idee?

    Ja das geht, aber nach dem es darum geht, dass du testen und dein Wissen erweiter willst hier nur skizziert wie es geht. Umsetzen muss du es dann selbst:

    Aufbau eines rekursiven Templates:
    3 Parameter: 1. der Text in dem das/die zu ersetzende/n Zeichen vorkommt/vorkommen, 2. das/die zu ersetzende Zeichen, 3. das/die Ersatzzeichen.

    Wenn im Text das Zeichen vorkommt, gebe den Text vor dem Zeichen aus, gebe den Ersatz aus und rufe das Template mit dem restlichen Text nach dem Zeichen erneut auf. Und Falls im Text das Zeichen nicht vorkommt, gebe einfach den Text aus.

    Grüße
    Thomas