This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Find a set of nodes and depending on element values
- From: Jakub dot Valenta at Deio dot net
- To: xsl-list at lists dot mulberrytech dot com
- Date: Mon, 4 Mar 2002 18:28:23 +0200
- Subject: Re: [xsl] Find a set of nodes and depending on element values
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi,
hope this helps
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl
="http://www.w3.org/1999/XSL/Transform">
<xsl:key name = "example" match ="/loadtest/rounds/action" use
= "./loadsize" />
<xsl:template match="/">
<!-- this selects the <action nodes according to loadsize parameter
<xsl:copy-of select="key('example','1')"/>
-->
<result>
<xsl:value-of select="sum(key('example','1')/time) div count(key
('example','1'))" />
</result>
</xsl:template>
</xsl:stylesheet>
gives you:
<?xml version="1.0" encoding="utf-8"?>
<result>17.666666666666668</result>
br,
Jakub
"Erik Stunkat" <Erik.Stunkat@poet.de>@lists.mulberrytech.com on 03/04/2002
05:53:17 PM
Please respond to xsl-list@lists.mulberrytech.com
Sent by: owner-xsl-list@lists.mulberrytech.com
To: XSL-List@lists.mulberrytech.com
cc:
Subject: [xsl] Find a set of nodes and depending on element values
Hi!
I have a simple xml file:
<?xml version="1.0" encoding="iso-8859-1"?>
<loadtest><settings task="Export" host="http://animal:8080" format
="BMECat" size="1000" ></settings><rounds>
<action><user>user0-0</user><command>completed</command><loadsize>1</loadsize><time>18</time><output></output></action>
<action><user>user0-1</user><command>completed</command><loadsize>1</loadsize><time>17</time><output></output></action>
<action><user>user0-2</user><command>completed</command><loadsize>1</loadsize><time>18</time><output></output></action>
<action><user>user0-3</user><command>completed</command><loadsize>5</loadsize><time>18</time><output></output></action>
<action><user>user0-4</user><command>completed</command><loadsize>5</loadsize><time>18</time><output></output></action>
</rounds></loadtest>
Now I want to find all <action> elements with the element
<loadsize>1</loadsize> and then process the average time (<time>xxx</time>)
for each set of action elements with the same time.
<xsl:value-of select="sum(/time[loadsize='1']) div count(time[loadsize
='1'])"/> does not work...
My problem is to find the correct nodeset - for-each gives me the strings
, not the elements.
thanks in advance!
erik stunkat
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list