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

时间:2012-08-07 20:56:10

标签: xslt

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

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

那么在xsl:template name = myTemplate中使用xsl:param和xsl:variable之间的区别是什么?

1 个答案:

答案 0 :(得分:50)

区别在于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>也可以在xsl:template之外的最高级别使用 样式表。可以在设置时设置这样的参数的值 调用XSLT处理器。如何完成取决于处理器 以及是从命令行还是通过程序调用它。