Zeilenumbruch ersetzen mit XSLT

Textfelder die \n für Zeilenumbrüche enthalten müssen in der Vorlage ersetzt werden damit diese im Dokumente korrekt als Zeilenumbrüche dargestellt werden. Das ist mit der folgenden Funktion möglich:

<xsl:template name="replace">
    <xsl:param name="string"/>
    <xsl:choose>
        <xsl:when test="contains($string,'\n')">
            <xsl:value-of select="substring-before($string,'\n')"/>
            <text:line-break/>
            <xsl:call-template name="replace">
                <xsl:with-param name="string" select="substring-after($string,'\n')"/>
            </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$string"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

Aufgerufen wird das Template mit folgendem Befehl

<xsl:call-template name="replace">
   <xsl:with-param name="string" select="lehrinhalte"/>
</xsl:call-template>