[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] extract values from an attribute, then math division


Subject: RE: [xsl] extract values from an attribute, then math division
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 21 Jul 2006 12:04:20 +0100

In XSLT 2.0, you can extract the numbers with

replace(@result, '^.*\[Total] = ([0-9]*).*$', '$1')

and

replace(@result, '^.*\[Count] = ([0-9]*).*$', '$1')

In XSLT 1.0, use a sequence of calls on substring-after and
substring-before.

A lot depends on quite how flexible you want to be in accepting variations
on this input. If you just want to extract two numbers from a string, and
you know there are spaces around them, you could do

translate($in, 'ABCDE..Zabcde..z:=[]', '')

to get rid of everything except spaces and digits and ".",

then normalize-space(),

then substring-after($in, ' ')
and substring-before($in, ' ')

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Leslie Young [mailto:xlr8sx@xxxxxxxxxxx] 
> Sent: 21 July 2006 01:57
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] extract values from an attribute, then math division
> 
> I need to extract 2 values from an attribute and perform math 
> division. For example, define a variable = [Total] / [Count] 
> / 100 from the following Value element.  Any advise how to do it?
> 
> <Item name="AAA">
>    <Value name="Samples" result="Samples: [Total] = 2000.0 
> [Count] = 50" /> </Item>
> 
> Thanks in advance!
> 
> _________________________________________________________________
> Don't just search. Find. Check out the new MSN Search! 
> http://search.msn.click-url.com/go/onm00200636ave/direct/01/


Current Thread
Keywords