私のxmlは次のようになります。
<units>
<unit>
<unitnum></unitnum>
<Year></Year>
<Qty></Qty>
</unit>
</units>
可能なすべての年をキャプチャするキーを作成します。このような:
<xsl:key name="yr" match="//Year/text()" use="." />
次に、キーを for-each ループして一意の年を取得します。私の最終的な目標は、次のように数量を合計することです。
<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 が各年の数量の実際の合計になることです。
私の推測では、述語 [Year=$varjobyear] に何か問題があると思われますが、それが何であるかはわかりません。[Year=string($varjobyear)] と [Year=number($varjobyear)] も試しました。
私は何を間違っていますか?ありがとう!