PARAM和xsl::XSL之间差变量(difference between xsl:param a

2019-07-30 20:10发布

我正在考虑其中任意一个来定义一个xsl时使用:模板名称= MyTemplate的,将在另一个XSL文件被调用。

传统代码似乎使用“的xsl:变量”当在XSL使用:模板匹配=“legacyTemplate”

在XSL使用它时,变量:模板名称= MyTemplate的有啥XSL之间的区别:PARAM和XSL?

Answer 1:

所不同的是,一个值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处理器被称为这样的参数的值可以被设置。 如何做到这一点取决于处理器以及是否通过命令行或通过程序调用它。



文章来源: difference between xsl:param and xsl:variable
标签: xslt