Announcement

Collapse
No announcement yet.

Zeichen in mixed content ersetzen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zeichen in mixed content ersetzen

    Hallo!

    Folgendes Problem lässt mich nicht ruhig schlafen:

    In einem Instanzdokument gibt es ein Element mit vermischtem Content:
    ...
    Code:
    <text>Als nächstes kommt ein <referenz id="1234">„Link“</referenz> mit „typografischen“ Anführungszeichen.</text>
    Ich möchte (unter anderem gerne die Nicht-ISO-8859-1 Zeichen in "text" und "referenz" ersetzen durch Apostrophe.

    Das folgende Stylesheet funktioniert aber nicht.
    Das Text wird zweimal ausgegeben, einmal mit korrekter Konvertierung aber ohne das template "referenz" anzuwenden und nochmal ohne Konvertierung aber unter Anwendung des templates "referenz":

    Code:
        <xsl:template match="text">
            <xsl:value-of select="translate(.,'“„,&quot;&apos;&apos;&quot;)" disable-output-escaping="yes"/>
            <xsl:apply-templates/>
        </xsl:template>
    
        <xsl:template match="referenz">
            <xsl:text>{</xsl:text>
            ...
            <xsl:value-of select="translate(.,'“„',&quot;&apos;&apos;&quot;)" disable-output-escaping="yes"/>
            <xsl:text>}</xsl:text>
        </xsl:template>

    (Anmerkung:
    Leider ersetzt die Forums-Anwendung #8820 und #8222 gleich durch die typografischen Anführungszeichen.)

    Kann mir da jemand helfen?

    Danke und Gruß,

    Roland
    Zuletzt editiert von roplacebo; 23.04.2009, 11:04.

  • #2
    Probiere es so:
    Code:
    <xsl:template match="text">
      <xsl:apply-templates/>
    </xsl:template>
    
    <xsl:template match="referenz">
      <xsl:text>{</xsl:text>
      <xsl:apply-templates/>
      <xsl:text>}</xsl:text>
    </xsl:template>
    
    <xsl:template match="text()">
      <xsl:value-of select="translate(.,'„“',&quot;&apos;&apos;&quot;)" disable-output-escaping="yes"/>
    </xsl:template>

    Comment

    Working...
    X