让我说我有以下消息来源:
<root>
<initialAmount>1000</initialAmount>
<Amortization_List>
<Amortization Index="0">10</Amortization>
<Amortization Index="1">25</Amortization>
<Amortization Index="2">-10</Amortization>
</Amortization_List>
</root>现在,我想在initialAmount中连续地添加节点Amortization,所以我的输出如下所示:
<result>
<amount>1010</amount>
<amount>1035</amount>
<amount>1025</amount>
</result>如何在XSLT2.0中做到这一点?
非常感谢!
发布于 2014-05-28 11:59:19
使用
<xsl:template match="root">
<result>
<xsl:variable name="amount" select="initialAmount"/>
<xsl:apply-templates select="Amortization_List/Amortization[1]">
<xsl:with-param name="sum" select="$amount"/>
</xsl:apply-templates>
</result>
</xsl:template>
<xsl:template match="Amortization">
<xsl:param name="sum"/>
<xsl:variable name="amount" select=". + $sum"/>
<amount><xsl:value-of select="$amount"/></amount>
<xsl:apply-templates select="following-sibling::Amortization[1]">
<xsl:with-param name="sum" select="$amount"/>
</xsl:apply-templates>
</xsl:template>https://stackoverflow.com/questions/23910942
复制相似问题