Subject: RE: [xsl] sum and substring xpath needed From: "Andrew Welch" <awelch@xxxxxxxxxxxxxxx> Date: Mon, 19 Aug 2002 16:40:00 +0100 |
Joerg, Jeni, thanks, Ive gone down the rtf route. Roll on 2.0... cheers andrew > -----Original Message----- > From: Jeni Tennison [mailto:jeni@xxxxxxxxxxxxxxxx] > Sent: 19 August 2002 16:26 > To: Andrew Welch > Cc: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] sum and substring xpath needed > > > Hi Andrew, > > > Please can someone give me the xpath that will sum() the following > > values into the select attribute of a variable (ie not a rtf). > > > > <colspec colwidth="38mm"/> > > <colspec colwidth="22mm"/> > > <colspec colwidth="26mm"/> > > <colspec colwidth="43mm"/> > > > > so something like: > > > > <xsl:variable name="total" > > select="sum(substring-before(//tgroup/colspec/@colwidth,'mm'))"/> > > > > ..this obviously fails because sum() requires a node-set and the > > substring functions return strings, but you get the idea. I dont > > think its possible to do in a single select but you never know, > > hopefully there's some trick available. > > 'Fraid not. You can create a RTF containing the values, convert that > to a node set and then sum the node set if you want. Otherwise you > have to use a recursive template of some kind. For example: > > <xsl:template name="sum-column-widths"> > <xsl:param name="columns" select="colspec" /> > <xsl:param name="sum" select="0" /> > <xsl:choose> > <xsl:when test="$columns"> > <xsl:call-template name="sum-column-widths"> > <xsl:with-param name="columns" > select="$columns[position() > 1]" /> > <xsl:with-param name="sum" > select="$sum + > substring-before($columns[1]/@colwidth, 'mm')" /> > </xsl:call-template> > </xsl:when> > <xsl:otherwise> > <xsl:value-of select="$sum" /> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > > or one of Dimitre's FXSL templates. > > --- > > XPath 2.0 way is still (most recent WDs): > > sum( for $col in colspec > return substring-before(@colwidth, 'mm') ) > > Cheers, > > Jeni > > --- > Jeni Tennison > http://www.jenitennison.com/ > > > > > > --- > Incoming mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.381 / Virus Database: 214 - Release Date: 02/08/2002 > > --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.381 / Virus Database: 214 - Release Date: 02/08/2002 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] sum and substring xpath n, Joerg Heinicke | Thread | [xsl] something in Perl script and , Srinivas Ch |
[xsl] XSL:FO Books, Uslu, Cihan Y (MED) | Date | RE: [xsl] XSL:FO Books, James Fuller |
Month |