我知道一旦初始化XSLT变量就不能更改它们各自的值。
撒克逊PE 9.2.0.6允许的语法如下:在同一范围内声明多个相同名称的XSLT变量
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="text" />
<xsl:template match="/">
<xsl:variable name="myVar" select="'asdex upgrade'" />
<xsl:value-of select="$myVar" /><xsl:text>
</xsl:text>
<xsl:variable name="myVar" select="'Wendelstein'" />
<xsl:value-of select="$myVar" /><xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
与此输出:
asdex upgrade
Wendelstein
所以这里发生了什么?很显然,这段代码与变量在XSLT中不可变的事实并不矛盾,否则Saxon处理器不会处理它。我在这里创建了两个具有相同名称的变量(其范围局限于给定的模板)?如果是这样,我是否有办法在创建第二个变量后访问第一个变量,或者它是否停止存在,或者它在XSLT处理器的符号表中被掩盖了?或者是什么给了?
感谢您的任何启示!
啊,谢谢。该规范说得很清楚。感谢您的链接,我显然必须在那里阅读。 – rexford