J’ai eu le besoin d’afficher les 200 premiers caractères d’un richtextarea pour m’en servir comme extrait, le soucis c’est que ça pose des problèmes : si ça coupe une balise HTML en 2, ça peut foutre en l’air l’intégration de la page.
Il a fallu dans un premier temps, retirer les balises HTML en XSLT.
<xsl:template name="removeHtmlTags">
<xsl:param name="html"/>
<xsl:choose>
<xsl:when test="contains($html, '<')">
<xsl:value-of select="substring-before($html, '<')"/>
<xsl:call-template name="removeHtmlTags">
<xsl:with-param name="html" select="substring-after($html, '>')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$html"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!---------------------------->
<xsl:variable name="monExtrait">
<xsl:call-template name="removeHtmlTags">
<xsl:with-param name="html" select="@MaVariableRichTextArea" />
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="substring($monExtrait, 0, 200)" />...