1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
<xsl:template name="despecialiseHTML">
<xsl:param name="text" />
<xsl:param name="id_caracteres" select="1" />
<!-- Tableau des caractères spéciaux -->
<xsl:variable name="caracteres">
<car id="1">
<special><![CDATA[é]]></special>
<normal><![CDATA[é]]></normal>
</car>
<car id="2">
<special><![CDATA[ ]]></special>
<normal><![CDATA[ ]]></normal>
</car>
<car id="3">
<special><![CDATA[è]]></special>
<normal><![CDATA[è]]></normal>
</car>
etc...
</xsl:variable>
<xsl:variable name="car_special" select="document('')//xsl:variable[@name='caracteres']/car[@id=$id_caracteres]/special" />
<xsl:variable name="car_normal" select="document('')//xsl:variable[@name='caracteres']/car[@id=$id_caracteres]/normal" />
<xsl:choose>
<xsl:when test="$id_caracteres > count(document('')//xsl:variable[@name='caracteres']/car)">
<xsl:value-of select="$text" />
</xsl:when>
<xsl:when test="contains($text, $car_special)">
<xsl:call-template name="despecialiseHTML">
<xsl:with-param name="text" select="concat(substring-before($text, $car_special), $car_normal, substring-after($text, $car_special))" />
<xsl:with-param name="id_caracteres" select="$id_caracteres" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="despecialiseHTML">
<xsl:with-param name="text" select="$text" />
<xsl:with-param name="id_caracteres" select="$id_caracteres+1" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template> |
Partager