如何在xslt中使用sum函数内部的变量

时间:2015-04-21 07:13:28

标签: xslt

我实际上是在循环字段名称并计算xml结果集中每个字段的总和。下面是我的代码,但如果其中一个记录中的任何值为null,则无法成功。请尽快帮助我。

  <xsl:variable name="currentRecord" select="."/>
  <xsl:for-each select="/fkdata/body/attinfofields/row">								
    <xsl:variable name="fld_name" select="translate(fieldname, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" />
    <xsl:variable name="datatype" select="datatype" />
    <xsl:variable name="istotalrequired" select="istotalrequired" />							
    
    <xsl:if test="$datatype='time' and istotalrequired='1'">
      <td nowrap="true">
        <xsl:call-template name="getTime">
          <xsl:with-param name="minutes">
            <xsl:value-of select="sum(/fkdata/body/attrow/row/child::*[name()=$fld_name])" />
          </xsl:with-param>
        </xsl:call-template>
      </td>
    </xsl:if>
  </xsl:for-each>

1 个答案:

答案 0 :(得分:0)

@ Martin Honnen,

这是一个空元素。实际上在我们的应用程序中,xml是由sql查询的结果集生成的。所以为了解决这个问题,我在sql查询中使用了 select isnull(abc,0)作为foo来自tblxyz 。这解决了我的问题。可能在xsl中也有解决方案,但我是在后端完成的。