感谢大家花时间查看我的问题。
当节点值不同时,我无法对节点求和,但如果它相同则可以工作。
这是我的 XML -
<statement>
<agency>
<employerShareAmt>75.00</employerShareAmt>
</agency>
<agency>
<employerShareAmt>76.00</employerShareAmt>
</agency>
</statement>
这是我的 XSLT -
<xsl:template match="/">
<root>
<xsl:call-template name="shopData"/>
</root>
</xsl:template>
<xsl:template name="shopData">
<RESULT>
<xsl:call-template name="sum"/>
</RESULT>
</xsl:template>
<xsl:template match="node()|@*" name="sum">
<xsl:apply-templates select="node()|@*"/>
</xsl:template>
<xsl:template match="statement">
<agency>
<xsl:for-each-group select="agency"
group-by="employerShareAmt">
<employerShareAmt>
<xsl:value-of
select="sum(current-group()/employerShareAmt)"/>
</employerShareAmt>
</xsl:for-each-group>
</agency>
</xsl:template>
结果是 75 76。但如果两者都是 75,则结果将是 150。
我似乎是按值分组然后添加它们。我怎样才能让它按它的节点分组,所以上面的 XML 结果将是 151?