xsl:param和xsl:variable之间的区别

bou*_*ppo 30 xslt

我正在考虑在定义xsl时使用其中一个:模板名称= myTemplate将在另一个xsl文件中调用.

遗留代码似乎在xsl中使用'xsl:variable':template match ="legacyTemplate"

那么xsl:param和xsl:variable在xsl中使用它时有什么区别:template name = myTemplate?

Jai*_*dra 53

不同之处在于,a的值xsl:param可以在声明它的上下文之外设置.例如,请参阅:

<xsl:template ...>
   <xsl:param name="p" select="'x'" />
   <xsl:variable name="v" select="'y'" />
...
Run Code Online (Sandbox Code Playgroud)

然后你就会知道$v总会给你一个字符串'y'.但是对于$p字符串'x'只是一个默认值:如果使用其中任何一个调用模板xsl:apply-templates或者xsl:call-template包含如下指令的模板,您将看到不同的值 :
<xsl:with-param name="p" select="'not x'" />

<xsl:param>也可以xsl:template在样式表的顶层使用.可以在调用XSLT处理器时设置此参数的值.如何完成取决于处理器以及是从命令行还是通过程序调用它.