Subject: Re: [xsl] Summing Time Durations Help From: Colin Paul Adams <colin@xxxxxxxxxxxxxxxxxx> Date: 05 Oct 2005 08:26:22 +0100 |
>>>>> "Kent" == Kent Seegmiller <hookjaw20@xxxxxxxxxxx> writes: Kent> I have some duration elements like <alltimes> Kent> <tduration>PT1H23M</tduration> <tduration>PT5M</tduration> Kent> <tduration>PT44M12S</tduration> Kent> <tduration>PT57M23S</tduration> ... </alltimes> Kent> What is the most efficient way to sum the durations? Is Kent> there an xpath = expression for this? Yes. If you are using XPath 2.0. You should use the sum() function. But first you need some duration values - at present, all you have are string literals - untyped text nodes. So if you have a prefix, say xdt, bound to the XPath dataypes namespace, you can convert the text node to a dayTimeDuration with the expression: xdt:dayTimeDuration(text()) if the context node is a tduration. So: sum (tduration/xdt:dayTimeDuration (text())) looks suitable. The following stylesheet (tested with gexslt): <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes"> <xsl:output method="text" /> <xsl:template match="/alltimes"> <xsl:value-of select="sum (tduration/xdt:dayTimeDuration (text()))" /> </xsl:template> </xsl:transform> produces the result: PT3H9M35S which is the correct result according to my mental arithmetic. With Saxon 8.5.1 I get the error: Error at xsl:value-of on line 7 of file:/home/colin/test.xsl: XPST0003: XPath syntax error at char 43 on line 7 in {.../xdt:dayTimeDuration (text(...}: Cannot find a matching 1-argument function named {http://www.w3.org/2005/xpath-datatypes}dayTimeDuration() Failed to compile stylesheet. 1 error detected. I guess this means that Saxon 8.5.1 does not use the latest namespace, so you would have to edit the xmlns line accordingly. -- Colin Adams Preston Lancashire
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Summing Time Durations Help, Kent Seegmiller | Thread | RE: [xsl] Summing Time Durations He, Michael Kay |
[xsl] Summing Time Durations Help, Kent Seegmiller | Date | RE: [xsl] comparisons between strin, Michael Kay |
Month |