Se avete la nessità di estendere le funzionalità che XSLT mette a disposizione in modo nativo, prima di avventervi subito sulla tastiera e scrivere extensions da zero, provate a dare un'occhiata a questo interessantissimo sito:
http://www.exslt.org/
vi risparmierete - probabilmente - parecchi mal di testa :-)
Per aiutarvi ancora di più vi posto un esempio di come usare l'estensione per calcolare il coseno in un numero:
xml version="1.0"?>
<xsl:stylesheet
xmlns
:xsl="http://www.w3.org/1999/XSL/Transform" xmlns
:math="http://exslt.org/math" version="1.0">
<xsl:import
href="math.cos.msxsl.xsl"/>
<xsl:template
match="/">
<html
>
<table
>
<xsl:apply-templates
select="//number" />
<table>
<html>
<xsl:template>
<xsl:template match="number">
<tr>
<td bgcolor="{@radian}">
<xsl:value-of select="math:cos(number(.))" />
<td>
<tr>
<xsl:template>
<xsl:stylesheet>
Occhio che è necessario usare
number() per convertire il parametro che si passa alla funzione in un numero, altrimenti il parametro verrebbe interpretato come un nodo e quindi provocherebbe un errore.