<LogFormat>
<TestHeading>
<TestName>abc</TestName>
<TestDuration>00:08:80</TestDuration>
<TestHeading>
<TestHeading>
<TestName>pqr</TestName>
<TestDuration>00:00:10</TestDuration>
<TestHeading>
<LogFormat>
我想添加xml文件的所有TestDuration标记(即00:00:10和00:08:80)。 我检查了'Summing numbers with comma as decimal separator in XSLT?',但它没有用。 请帮助别人.. 提前谢谢..
答案 0 :(得分:0)
此样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:template match="LogFormat">
<xsl:apply-templates select="TestHeading[1]"/>
</xsl:template>
<xsl:template match="TestHeading">
<xsl:param name="pSum" select="0"/>
<xsl:variable name="vNext"
select="following-sibling::TestHeading[1]"/>
<xsl:variable name="vSum"
select="$pSum + substring(TestDuration,1,2) * 3600
+ substring(TestDuration,4,2) * 60
+ substring(TestDuration,7)"/>
<xsl:apply-templates select="vNext">
<xsl:with-param name="pSum" select="$vSum"/>
</xsl:apply-templates>
<xsl:if test="not(vNext)">
<xsl:value-of
select="concat(format-number(floor($vSum div 3600),'00'),
':',
format-number(floor($vSum mod 3600 div 60),'00'),
':',
format-number($vSum mod 60,'00'))"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
输出:
00:09:20