Dans XSLT 2.0, vous pouvez définir vos propres fonctions personnalisées à l'aide xsl:function
Un article sur XML.com décrivant comment écrire vos propres fonctions XSLT 2.0: http://www.xml.com/pub/a/2003/09/03/trxml.html
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:foo="http://whatever">
<!-- Compare two strings ignoring case, returning same
values as compare(). -->
<xsl:function name="foo:compareCI">
<xsl:param name="string1"/>
<xsl:param name="string2"/>
<xsl:value-of select="compare(upper-case($string1),upper-case($string2))"/>
</xsl:function>
<xsl:template match="/">
compareCI red,blue: <xsl:value-of select="foo:compareCI('red','blue')"/>
compareCI red,red: <xsl:value-of select="foo:compareCI('red','red')"/>
compareCI red,Red: <xsl:value-of select="foo:compareCI('red','Red')"/>
compareCI red,Yellow: <xsl:value-of select="foo:compareCI('red','Yellow')"/>
</xsl:template>
</xsl:stylesheet>
Pour appeler la fonction intégrée normalisent-espaces, nous passons le paramètre comme (param1, param2, paramN), Est-il possible d'appeler mon modèle de cette façon: < xsl: value-of select = "monModèle (param1, param2)" /> –
Non. La syntaxe des fonctions intégrées (par ex. normalize-spaces) est différent de la syntaxe des templates. –
Donc, il existe un moyen de créer des fonctions dans XSLT? –