2015-04-21 48 views
-2

我實際上是循環字段名稱並計算xml結果集中每個字段的總和。以下是我的代碼,但如果某個記錄中的任何值爲空,則我無法成功。請儘快幫助我。如何在sum函數中使用變量xslt

<xsl:variable name="currentRecord" select="."/> 
 
    <xsl:for-each select="/fkdata/body/attinfofields/row"> \t \t \t \t \t \t \t \t 
 
    <xsl:variable name="fld_name" select="translate(fieldname, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')" /> 
 
    <xsl:variable name="datatype" select="datatype" /> 
 
    <xsl:variable name="istotalrequired" select="istotalrequired" /> \t \t \t \t \t \t \t 
 
    
 
    <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

目前還不清楚你想要做什麼。請發佈輸入XML,期望的輸出和更多的XSLT,以便我們可以運行一個示例。 – potame

+0

觀察下面的行。即使結果集中的某些值爲null,我也想要它的總和:

+0

如果你沒有提供所需的信息 - 即完全可運行的樣本,恐怕我們不能提供幫助。 – potame

回答

0

@馬丁Honnen,

這是一個空元素。實際上,在我們的應用程序中,xml是由sql查詢的結果集生成的。所以要解決我使用的問題在sql查詢中選擇isbull(abc,0)作爲foo從tblxyz。這解決了我的問題。可能在xsl中也有解決方案,但是我是從後端完成的。