This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: newbie: xsl:key and summation of substrings


Here are three ways to sum over a computed quantity:

* Create a result tree fragment containing nodes whose value is the computed
number, and use sum(xx:node-set($rtf//value)) to do the summation, where
xx:node-set() is your vendor's extension function for converting an RTF to a
node-set

* Use a recursive named template [this is the only standard XSLT 1.0
solution]

* Use the saxon extension function saxon:sum($nodes, saxon:expression(...))

Mike Kay

> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of Christopher
> Giblin
> Sent: 09 December 2001 17:00
> To: XSL-List@lists.mulberrytech.com
> Subject: [xsl] newbie: xsl:key and summation of substrings
>
>
> hi
>
> 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".
> Of course, sum(substring-before(//disk/freespace, ' ')) does
> not work...
>
> So I thought the solution lies in  building an index of
> freespace values:
>
>      <xsl:key name="freespace" match="//disk" use
> ="substring-before(freespace,' ')"/>
>
>      <!-- output sum of freespace values: -->
>                 <total>
>          <xsl:value-of select="sum(key('freespace',.))"/>
>      </total>
>
> .. but it doesn't.
>
> I can not influence the content of this source document.
> How do I best sum over elements which need to be substring-parsed?
>
> I realize this is basic. I'm just not getting the examples in the faq.
>
> Thanks, chris
>
>
>
>
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]