我无法从模板中覆盖XSLT中的全局变量。
全局变量声明:
<xsl:variable name="abc" />模板,其中我希望覆盖全局变量:
<xsl:template name ="newTemplate">
<xsl: variable name="abc" select="'1'" />
<!- ... -->
</xsl:template>可以覆盖全局变量吗?如果是,怎么做?
发布于 2016-06-02 13:35:35
XSLT中的变量在XSLT中是不可变的,一旦设置就不能更改。在您问题中的代码片段中,模板中的abc声明被称为“隐藏”全局声明。(见https://www.w3.org/TR/xslt#dt-shadows)。
这意味着在模板中不能访问全局声明。您刚刚创建了一个名称相同的新变量,该变量是模板的本地变量。
这并不意味着你不能解决你的根本问题,只是你不能通过改变变量来解决它。理想情况下,你应该始终解决你想要解决的问题,而不仅仅是你想要解决的问题。
https://stackoverflow.com/questions/37592948
复制相似问题