2
我的XML看起來是這樣的:XSLT變量不工作
<units>
<unit>
<unitnum></unitnum>
<Year></Year>
<Qty></Qty>
</unit>
</units>
我創建一個密鑰來捕獲所有可能的歲月。像這樣:
<xsl:key name="yr" match="//Year/text()" use="." />
然後我爲每個循環通過鍵來獲得獨特的歲月。我的最終目標是要總結的分位數是這樣的:
<xsl:for-each select="//Year/text()[generate-id()=generate-id(key('yr',.)[1])]">
<li>
<xsl:variable name="varjobyear" select="."/>
<xsl:value-of select="$varjobyear"/> - sum -
<xsl:value-of select="sum(//unit[Year=$varjobyear]/Qty)"/>
</li>
</xsl:for-each>
出於某種原因,我的輸出是這樣的:
2010 - sum - 0
2011 - sum - 0
2012 - sum - 0
但我要的是那些0的是量的實際總和每年。
我最好的猜測是謂詞[年= $ varjobyear]有問題,但我無法弄清楚它是什麼。我也試過[Year = string($ varjobyear)]和[Year = number($ varjobyear)]。
我在做什麼錯?謝謝!
請勿在匹配條件中使用//。這不是必需的。 –