我知道一旦初始化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