Subject: RE: "sum" of "substring"
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Thu, 23 Oct 2003 13:02:53 +0100
|
Summing over a computed expression isn't easy in XSLT 1.0. Here are some
possible approaches:
(a) Rather than use the sum() function, do a traversal of the values
using a recursive template, adding the values up as you go.
(b) Create a result tree fragment containing the computed values, and
use the xx:node-set() function to access the nodes in the RTF and sum()
over them
(c) Use XPath 2.0: sum(for $i in $seq return f($i))
(d) Use the saxon:sum() extension function in Saxon 6.5.3
(e) Use the appropriate template from Dimitre's FXSL library
Michael Kay
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> Colin Simpson
> Sent: 23 October 2003 12:24
> To: 'XSL-List@xxxxxxxxxxxxxxxxxxxxxx'
> Subject: "sum" of "substring"
>
>
> Hello
>
> My problem:
> I have a flat text file that has to be transformed into a
> predetermined XML file.
>
> Example: TYPE1Field1AnotherField12.00YetAnotherField445.26FinalField
> TYPE1ABCDEFABCDEFGHIJKL45.00ABCDEFGHIJKLMNO123.45ABCDEFGHIJ
> TYPE2FieldAnother987.65Final
>
> where the first 5 characters indicate which one of two record
> layouts it is.
>
> I first do some rudimentary wrapping of the records, creating
> an intermediary XML file that I can then use XSLT to process:
>
> <records>
> <record>TYPE1Field1AnotherField12.0YetAnotherField445.26FinalF
> ield</record>
> <record>TYPE1ABCDEFABCDEFGHIJKL45.0ABCDEFGHIJKLMNO123.45ABCDEF
> GHIJ</record>
> <record>TYPE2FieldAnother987.65Final</record>
> </records>
>
>
> I can populate nodes in the final output XML file by
> extracting data via "substring", such as
> <xsl:value-of select="substring(.,28,15)">
>
> I need to total up certain numeric values within the record
> of a specific layouts. For example, I want to total up the
> values that occupy positions 24 thru 28 from all records of
> "TYPE1". Is there any way of doing this? I thought I should
> use "sum" but I can't figure out the syntax needed.
>
> Kind regards
> Colin Simpson
>
> **************************************************************
> **************
>
> This email and any files transmitted with it are confidential
> and intended
> solely for the use of the individual or entity to whom they
> are addressed.
> If you have received this email in error please notify the
> system manager.
>
> **************************************************************
> **************
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|