[xsl] sum of duration as string

Subject: [xsl] sum of duration as string
From: "cmarchand@xxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 9 Mar 2016 14:40:59 -0000
Hello,

I have a comma separated string of durations :

<base
name='BASECOCOS'>PT2.206S,PT2.206S,PT0.435S,PT0.435S,PT1.022S,PT1.022S,PT1.49
0S,PT1.490S,PT12M15.963S,PT12M15.963S</base>


I want to calculate the sum of the durations who are in odd positions.

I've tried this :

<xsl:function name="local:sumDuration" as="xs:duration">
   <xsl:param name="seq" as="xs:string+"/>
   <xsl:choose>
      <xsl:when test="count($seq) ge 3">
         <xsl:variable name="dur1" as="xs:duration"
select="xs:duration($seq[1])"/>
         <xsl:value-of select="$dur1 +
local:sumDuration(subsequence($seq,3))"/>
      </xsl:when>
      <xsl:otherwise>
         <xsl:value-of select="xs:duration($seq[1])"/>
      </xsl:otherwise>
   </xsl:choose>
</xsl:function>

...

   <xsl:value-of select="local:sumDuration(tokenize(./text(),','))"/>

I get this error :

ID SystC(me:
/home/ext-cmarchand/devel/avo-optim/inneo/src/main/makeTempsTableFromLogs/xsl
t/makeTable.xsl
ScC)nario: makeTable
fichier XSL:
/home/ext-cmarchand/devel/avo-optim/inneo/src/main/makeTempsTableFromLogs/xsl
t/makeTable.xsl
Nom du moteur: Saxon-PE 9.5.1.3
GravitC): fatal
Description: XPTY0004: Only subtypes of xs:duration can be added
Emplacement de dC)but: 245:0
URL: http://www.w3.org/TR/xpath20/#ERRXPTY0004

I use /xsl:stylesheet/@version="2.0" with Saxon-PE 9.5.1.3

Any help will be much appreciated.

Christophe

Current Thread