xsl:param和xsl:variable之间的区别是什么?

38
我正在考虑在定义一个在另一个XSL文件中调用的时,使用或中的其中一个。
遗留代码似乎在中使用。
那么,在中使用xsl:param和xsl:variable有什么区别呢?请解释一下。
1个回答

66

区别在于 xsl:param 的值可以在声明它的上下文之外设置。例如,参见:

<xsl:template ...>
   <xsl:param name="p" select="'x'" />
   <xsl:variable name="v" select="'y'" />
...

如果你了解的话,$v 将始终为字符串 'y'。但对于$p,字符串'x'只是一个默认值: 如果模板中包含以下指令之一:xsl:apply-templatesxsl:call-template并且包含以下指令,则将看到不同的值:
<xsl:with-param name="p" select="'not x'" />

<xsl:param> 也可以在样式表顶层以外的地方使用。当调用XSLT处理器时,可以设置此类参数的值。如何设置取决于处理器以及您是通过命令行还是通过程序调用它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接