【发布时间】:2012-07-24 00:48:49
【问题描述】:
我想在for-each 循环中增加我的全局变量tmp_balance_virt 但在每个循环中tmp_balance_virt (a=a+b) 正在重置为其初始值,如何使有用?
<xsl:variable name="tmp_balance_virt" select="/doc/plot/@st_balance_virt" /> //first value
...
<xsl:if ...>
...
<xsl:for-each
select="/doc/plot/cfc/pl.cashflow.rabean.TransactionsData[type=0]">
<xsl:variable name="tmp_balance_virt" select="value + $tmp_balance_virt" />
[
<xsl:value-of select="date_ms" />
,
<xsl:value-of select="$tmp_balance_virt" />
],
</xsl:for-each>
编辑: 这对我有用。
<xsl:for-each
select="/doc/plot/cfc/pl.cashflow.rabean.TransactionsData[type=1]">
<xsl:variable name="PREC"
select="count(preceding-sibling::pl.cashflow.rabean.TransactionsData[type=1])+2" />
[
<xsl:value-of select="date_ms" />
,
<xsl:value-of
select="sum(/doc/plot/cfc/pl.cashflow.rabean.TransactionsData[type=1][position() < $PREC]/value) + $tmp_balance_real" />
],
</xsl:for-each>
【问题讨论】:
-
尝试在 a+b 周围添加括号:
a=(a+b) -
这是 XSLT 1 还是 2?您不能在 1 中重新定义(因此增加)变量(不确定 2)。
标签: xslt