Subject: Re: [xsl] newbie: xsl:key and summation of substrings From: Trevor Nash <tcn@xxxxxxxxxxxxx> Date: Sun, 09 Dec 2001 18:35:59 +0000 |
>Despite reading the faqs, I am still banging my head on basic summation and >would appreciate help. > >I have a repeating element that looks something like this: > <disk> > <freespace>1235 MB</freespace> > </disk> > <disk> > <freespace>40 MB</freespace> > </disk> > <disk> > <freespace>75 MB</freespace> > </disk> > > >I want to sum the "freespace", but sum(//disk/freespace) won't work because >freespace is not a number due to the trailing "MB". The short answer is, you can't. To use sum() the values have to be present directly in the input, there is no way to preprocess them. There are three longer answers: 1. Use a recursive template. This can be done with pure XSLT 1.0. 2. Construct a temporary tree in a variable containing preprocessed values, and then use sum() on that. You will need to use the node-set() extension function which most processors have. 3. Do the transformation in two steps: step one is turn the document into something sensible. Be careful though - is it *always* MB or will you sometimes get KB or GB or even TB? >I can not influence the content of this source document. I've lost count of the number of times I have seen this, most commonly with grouping type questions. Anybody got a theory as to why this happens? There must be thousands of person-hours being wasted. Regards, Trevor Nash -- Traditional training & distance learning, Consultancy by email Melvaig Software Engineering Limited voice: +44 (0) 1445 771 271 email: tcn@xxxxxxxxxxxxx XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] newbie: xsl:key and summa, Michael Kay | Thread | Designing XML for XSLT (Was: Re: [x, Jeni Tennison |
RE: [xsl] newbie: xsl:key and summa, Michael Kay | Date | [xsl] xsl:if question, JWALLIS |
Month |