我无法从模板覆盖XSLT中的全局变量。
全局变量声明:
<xsl:variable name="abc" />
我想在其中覆盖全局变量的模板:
<xsl:template name ="newTemplate">
<xsl: variable name="abc" select="'1'" />
<!- ... -->
</xsl:template>
是否可以覆盖全局变量?如果是这样,怎么办?
XSLT中的变量在XSLT中是不可变的,一旦设置就无法更改。在您问题的代码段中,abc
模板中的声明被称为“遮盖”全局声明。(请参阅https://www.w3.org/TR/xslt#dt-shadows)。
这意味着将无法在模板中访问全局声明。您刚刚使用模板创建了一个具有相同名称的新变量。
这并不意味着您无法解决根本的问题,只是不能通过更改变量来解决。理想情况下,您应该始终尝试解决的问题,而不只是解决问题的方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句