Limitar número de palabras a mostrar en un Webpart de texto mediante XSLT

En el proyecto en el que he estado implicado últimamente, una de las especificaciones es limitar el número de palabras tiene que mostrar cada una de las entradas de un Webpart de una lista de anuncios en Windows SharePoint Servicies.

Lo primero que tenemos que realizar es la eliminación de etiquetas HTML(<Div>, <Span>, <Font>, etc.) que generalmente se agregan a la hora de añadir nuevas entradas de la lista deseada. Esta particularidad la realizaremos a través del lenguaje XLST.

Primeramente deberemos definir un método para eliminar las etiquetas HTML lo haremos a través del siguiente código:

<xsl:template name="BorrarEtiquetasHtml">

<xsl:param name="html"/>

<xsl:choose>

<xsl:when test="contains($html, ‘&lt;’)

<xsl:value-of select="substring-before($html, ‘&lt;’)"/>

<xsl:call-template name="BorrarEtiquetasHtml">

<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>

El siguiente paso es realizar una llamada al método creado con anterioridad pasándole el texto de nuestra entrada. Se realizará del siguiente modo:

<xsl:variable name="pureText">

<xsl:call-template name="BorrarEtiquetasHtml">

<!–llamada al metodo pasandole el cuerpo de nuestra lista –>

<xsl:with-param name="html" select="@Body" />

</xsl:call-template>

</xsl:variable>

 

Una vez enviado el texto, este quedará limpio de las molestas etiquetas que impiden la limitación de caracteres de las entradas de una lista.Para ello utilizaremos la variable que anteriormente ha sido limpiada de etiquetas ( pureText) introduciéndole la siguiente consulta:

<xsl:value-of select="substring($pureText, 0, 600)" />

Siendo Substring el método que devolverá los caracteres comprendidos entre el número inicial que nosotros introduzcamos, en este caso el cero ya que partimos del carácter inicial, seleccionando la cadena hasta el carácter 600 en este caso. Toda esta selección se realizará sobre la variable limpia de etiquetas HTML (pureText).

Como podéis ver es una forma sencilla de mostrar un resumen de las distintas entradas por ejemplo de una lista de anuncios.

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *