XSLT迭代结束

时间:2016-05-26 21:59:31

标签: xslt foreach

我收到一条错误消息,指出我的模板总秒数计算不存在。我是否在向我抛出错误的for-each循环中做错了什么?

我目前的代码是:

<xsl:template match="Total-Seconds-Calculation">

    <xsl:for-each select="//SEGMENTS[TX_PART = '1']">
        <xsl:value-of select="DUR"/> 
        <xsl:variable name="Hours" select="substring($DUR,1,2)" />
        <xsl:variable name="Minutes" select="substring($DUR,4,2)" />
        <xsl:variable name="Seconds" select="substring($DUR,7,2)" />
        <xsl:variable name="TotalSeconds" select="(($Hours*3600)+($Minutes*60)+($Seconds))" />
    </xsl:for-each>
</xsl:template>

<xsl:variable name="TotalDurationShow"><xsl:call-template name="Total-Seconds-Calculation"></xsl:call-template></xsl:variable>

我要做的是解析这段时间代码并累计DUR的总秒数。以下是我正在使用的XML部分:

<SEGEMENTS>
    <DUR>00:12:33:21</DUR>
    <TX_PART>1</TX_PART>
</SEGEMENTS>
<SEGEMENTS>>
    <DUR>00:08:26:16</DUR>
    <TX_PART>1</TX_PART>
</SEGEMENTS>

1 个答案:

答案 0 :(得分:0)

如果要按名称调用模板,则必须为其命名。

<xsl:template name="Total-Seconds-Calculation">

如果您愿意,可以同时拥有name属性和match属性,但我从来没有找到合适的用途。