Archiv

Archiv für Juli, 2007

nl2br in XSLT

24. Juli 2007 1 Kommentar

Ich hab seit ewigkeiten nach einer Funktion für XSLT gesucht die wie Newline to Break in PHP funktioniert.

Durch Zufall bin ich eben durch Google auf eine sehr schöne Implementierung bei Javangelist gestoßen:

<!-- break arbeitet nur mit n -->
<xsl:template name="break">
<xsl:param name="text" select="."/>
<xsl:choose>
<xsl:when test="contains($text, '&#x0D;')">
<xsl:if test="string-length(substring-before($text, '&#x0D;')) > 0">
<xsl:value-of select="substring-before($text, '&#x0D;')"/>
</xsl:if>
<br/>
<xsl:call-template name="break">
<xsl:with-param name="text" select="substring-after($text,'&#x0D;')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:if test="string-length($text) > 0">
<xsl:value-of select="$text"/>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

Das kann man sehr schön steuern und verwenden:

<xsl:call-template name="break">
<xsl:with-param name="text" select="detail[@name = 'comment']" />
</xsl:call-template>

Und schon wirds schön formatiert wie mit nl2br 🙂

Edit: Irgendwie is beim Kopieren in WordPress was schief gelaufen, probierts lieber mit &#x0D; statt “ 🙂

Kategorienbasteln, programmieren Tags: