XSL中的Sum函数

时间:2014-02-17 07:04:19

标签: xslt

以下是我的输入XML:

<?xml version="1.0" encoding="utf-8" ?>
<LogiusInhouse>
    <qty9 field="QTY_9,11#">
        <type>90</type>
        <value>12</value>
    </qty9>
    <qty9 field="QTY_9,11#">
        <type>90</type>
        <value>12</value>
    </qty9>
    <dtm9 field="DTM_9,11#">
        <type>145</type>
        <date>20130308</date>
        <format>102</format>
    </dtm9>
</LogiusInhouse>

XSL:

<xsl:template match="/LogiusInhouse">

        <xsl:value-of select="abs(sum(qty9[type='90']/value))div 1000 "/>

</xsl:template>

我的问题是我需要获得绝对金额,然后必须除以1000但是我没有得到结果。请帮助我。

2 个答案:

答案 0 :(得分:2)

不要使用for-each。使用下面的模板

<xsl:template match="/LogiusInhouse">               
    <xsl:value-of select="sum(//value)"/>                                     
</xsl:template>

使用for-each将输出1212因为每个节点(在您的代码中),结果为12

答案 1 :(得分:2)

或者,你可以使用这个:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" indent="yes"/>

<xsl:template match="/LogiusInhouse">
    <xsl:value-of select="sum(qty9/value)" />
</xsl:template>

</xsl:stylesheet>