Retirer les balises HTML en XSLT pour SharePoint 2010

octobre 21, 2011

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, '&lt;')">
            <xsl:value-of select="substring-before($html, '&lt;')"/>
            <xsl:call-template name="removeHtmlTags">
                <xsl:with-param name="html" select="substring-after($html, '&gt;')"/>
            </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)" />...

Tags: ,

Leave a Reply