tone: <br> Tag aus xml Element-Inhalten entfernen/ersetzen

Hallo,
folgendes xml Element (Ausschnitt) soll via xsl-fo in pdf gewandelt werden

sql:inhalt text text text text text <br> text text text text text text text <br> text text </sql:inhalt>

Ich würde nun gerne dieses <br> Tag aus dem text herausnehmen und wenn möglich mit fo:block </fo:block> ersetzen, also quasi daraus einen Zeilenumbruch machen. Translate übersetzt ja leider nur einzlene Zeichen statt ganze Strings
Wie gehe ich vor?
Vielen Dank

  1. Hallo,

    folgendes xml Element (Ausschnitt) soll via xsl-fo in pdf gewandelt werden

    sql:inhalt text text text text text <br> text text text text text text text <br> text text </sql:inhalt>

    Ich würde nun gerne dieses <br> Tag aus dem text herausnehmen und wenn möglich mit fo:block </fo:block> ersetzen, also quasi daraus einen Zeilenumbruch machen. Translate übersetzt ja leider nur einzlene Zeichen statt ganze Strings
    Wie gehe ich vor?

    <xsl:template match="br">
     fo:block</fo:block>
    </xsl:template>

    <xsl:template match="sql:inhalt">
     xsl:apply-templates  /
    </xsl:template>

    Grüße
    Thomas

    1. Hi Thomas,
      danke für die Antwort. Das Problem wird vielleicht durch diesen UltraEdit Ausschnitt deutlicher.
      http://img130.imageshack.us/img130/9450/inhalt6ry.png

      Man darf dieses <br> eigentlich nicht als Tag ansehen, sondern als normalen Text. Anders ausgedrückt, man ersetze '<br>' mit z.B. 'Auto' dann sehe das so aus:

      sql:inhalttext text text  Auto text text text  Auto </sql:inhalt>

      Nun soll überall dort wo 'Auto' steht, ein fo:block </fo:block> hin

      Danke

      1. Hallo,

        diese Diskussion hatte ich auch schon einmal geführt, da ich ähnliches anstellen wollte. Ich glaube die replace Funktion gibt es erst in XPath 2.0. Mir wurde damals ein rekursive template mit substring-before und substring-after empfohlen. Habe es dann aber nicht weiter verfolgt, da ich es anderweitig lösenkonnten.

        Viele Grüße,

        Holger

        Hi Thomas,
        danke für die Antwort. Das Problem wird vielleicht durch diesen UltraEdit Ausschnitt deutlicher.
        http://img130.imageshack.us/img130/9450/inhalt6ry.png

        Man darf dieses <br> eigentlich nicht als Tag ansehen, sondern als normalen Text. Anders ausgedrückt, man ersetze '<br>' mit z.B. 'Auto' dann sehe das so aus:

        sql:inhalttext text text  Auto text text text  Auto </sql:inhalt>

        Nun soll überall dort wo 'Auto' steht, ein fo:block </fo:block> hin

        Danke

        1. Danke für den Hinweis. Mit einem rekursiven Termplate funktioniert es.