我实际上是在循环字段名称并计算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>
答案 0 :(得分:0)
@ Martin Honnen,
这是一个空元素。实际上在我们的应用程序中,xml是由sql查询的结果集生成的。所以为了解决这个问题,我在sql查询中使用了 select isnull(abc,0)作为foo来自tblxyz 。这解决了我的问题。可能在xsl中也有解决方案,但我是在后端完成的。