我正在考虑在定义一个在另一个XSL文件中调用的时,使用或中的其中一个。
遗留代码似乎在中使用。
那么,在中使用xsl:param和xsl:variable有什么区别呢?请解释一下。
遗留代码似乎在中使用。
那么,在中使用xsl:param和xsl:variable有什么区别呢?请解释一下。
区别在于 xsl:param
的值可以在声明它的上下文之外设置。例如,参见:
<xsl:template ...>
<xsl:param name="p" select="'x'" />
<xsl:variable name="v" select="'y'" />
...
如果你了解的话,$v
将始终为字符串 'y'
。但对于$p
,字符串'x'
只是一个默认值:
如果模板中包含以下指令之一:xsl:apply-templates
或 xsl:call-template
并且包含以下指令,则将看到不同的值:
<xsl:with-param name="p" select="'not x'" />
<xsl:param>
也可以在样式表顶层以外的地方使用。当调用XSLT处理器时,可以设置此类参数的值。如何设置取决于处理器以及您是通过命令行还是通过程序调用它。