Nor*_*ais 2 xslt xslt-2.0 xslt-1.0
我有很多函数可以接受一个输入,例如:
<xsl:template name="F">
<xsl:param name="input"/>
... ...
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
要调用该函数,我需要写:
<xsl:call-template name="F">
<xsl:with-param name="input" select="'jkljkljkl'"/>
</xsl:call-template>
Run Code Online (Sandbox Code Playgroud)
这似乎过于冗长.由于函数只有一个参数,为什么我们要写xsl:with-param节点?
是否有调用单参数函数的快捷方式?
我希望能够做到这样的事情:
<xsl:call-template name="F" select-param="'jkljkl'"/>
Run Code Online (Sandbox Code Playgroud)
它短而甜,同样不含糊(因为只有一个参数).我们怎样才能以简短而甜蜜的方式调用单参数函数?
我正在寻找XSLT 1.0和XSLT 2.0的解决方案.
在XSLT 2.0中,您可以通过以下方式编写自己的函数:
xsl:function声明将函数定义为转换根元素的子元素.例:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:nTan="http://nTan.comr">
<xsl:function name="nTan:Hello">
<xsl:param name="string1"/>
<xsl:value-of select="concat('Hello ',$string1)"/>
</xsl:function>
<xsl:template match="/">
<xsl:value-of select="nTan:Hello('World!')"/>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)