Primero, que necesitas hacer?
En XSLT puedes crear templates. Por ejemplo, un template que muestre X veces el texto "Foros del Web"
Código HTML:
<xsl:template name="titulos">
<xsl:param name="cuantos">1</xsl:param>
<xsl:if test="$cuantos > 0">
<xsl:text> Foros del Web</xsl:text>
<xsl:call-template name="titulos">
<xsl:with-param name="cuantos" select="$cuantos- 1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
Y lo llamas desde cualquier parte del documento con:
Código HTML:
<xsl:call-template name="titulos">
<xsl:with-param name="cuantos" select="0"/>
</xsl:call-template>
Para definir funciones propiamente dichas, tendrias que recurrir a un lenguaje externo. Por ejemplo, en PHP:
Código PHP:
$xslt = new XSLTProcessor();
// Esta linea registra todas funciones para que las puedas usar desde XSLT
$xslt->registerPHPFunctions();
Entonces cada vez que necesites llamar a una funcion:
Código HTML:
<xsl:value-of select="php:function('funcion', 'argumento')" />
Obviamente antes tendrias que declarar el namespace php agregando
xmlns:php="http://php.net/xsl"
a <xsl:stylesheet>