Subject: Re: [xsl] "sum" of "substring" From: Mukul Gandhi <mukulgw3@xxxxxxxxx> Date: Sun, 26 Oct 2003 08:19:18 -0800 (PST) |
Hi Colin, Sorry for coming in late to answer.. If I understood the problem correctly, *the following XSL hopefully solves the problem* .. <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xalan"> <xsl:output method="text" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/records"> <xsl:variable name="xml-subset"> <xsl:for-each select="record"> <xsl:if test="substring(. , 1, 5) = 'TYPE1'"> <a> <xsl:value-of select="substring(. , 24, 5)"/> </a> </xsl:if> </xsl:for-each> </xsl:variable> Desired total -- <xsl:value-of select="sum(xalan:nodeset($xml-subset)//a)" /> </xsl:template> </xsl:stylesheet> I am assuming, the following XML is already written -- <?xml version="1.0" encoding="UTF-8"?> <records> <record>TYPE1Field1AnotherField12.5 YetAnotherField445.26FinalField</record> <record>TYPE1ABCDEFABCDEFGHIJKL13.0 ABCDEFGHIJKLMNO123.45ABCDEFGHIJ</record> <record>TYPE2FieldAnother987.65Final</record> </records> When the XSL posted by me, is applied to the XML, the desird sum is produced. I am using, *the nodeset extension function*, and have introduced a Result Tree Fragment(RTF), with a XML element <a> , for the sake of computation.. Hope my answer is useful.. Regards, Mukul --- Colin Simpson <Colin.Simpson@xxxxxxxxxxxxxxx> wrote: > 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.26FinalField</record> > <record>TYPE1ABCDEFABCDEFGHIJKL45.0ABCDEFGHIJKLMNO123.45ABCDEFGHIJ</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 > __________________________________ Do you Yahoo!? Exclusive Video Premiere - Britney Spears http://launch.yahoo.com/promos/britneyspears/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: "sum" of "substring", Dimitre Novatchev | Thread | RE: [xsl] "sum" of "substring", Colin Simpson |
RE: [xsl] Can I print well-formed X, Andreas L. Delmelle | Date | RE: [xsl] Can I print well-formed X, Nathaniel Stoddard |
Month |