我想总结符合我条件的所有值(见下文)。如果条件不满足,我想返回0.请参阅我的下面的代码并建议。目前它正空着。
条件:如果fieldlabel =' A'则汇总所有值,如果没有重新调整(在此示例中需要返回30) 假设我正在寻找C'而不是' A',在这种情况下我必须返回0
示例文件:
<root>
<parent>
<element>
<elementname>A</elementname>
<elementvalue>10</elementvalue>
</element>
<element>
<elementname>B</elementname>
<elementvalue>20</elementvalue>
</element>
<element>
<elementname>A</elementname>
<elementvalue>30</elementvalue>
</element>
</parent>
</root>
代码:
<xsl:template match="/">
<xsl:for-each select="/root/parent/element">
<xsl:variable name="field">
<xsl:value-of select="elementname" />
</xsl:variable>
<xsl:if test="$field='A'">
<xsl:value-of select="sum(elementvalue)" />
</xsl:if>
</xsl:for-each>
<xsl:variable name="finalresult">
<xsl:choose>
<xsl:when test="$fieldname = '' ">0</xsl:when>
<xsl:otherwise><xsl:value-of select="$field"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
答案 0 :(得分:2)
当您与/root/parent/element
和xsl:for-each
中的sum(elementvalue)
匹配时,您只对当前elementvalue
的{{1}}进行求和,并且&# 39;只有其中一个。
相反,请考虑在谓词中测试条件:
element