Re: [xsl] Getting average

Subject: Re: [xsl] Getting average
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 27 May 2008 16:28:40 -0400
Harsh,

To get all persons of a given age, say $age, select //person[@age=$age]

So:

<xsl:variable name="contemporaries" select="//person[@age=$age]"/>

Sum their incomes:

sum($contemporaries/group/@income)

Average their incomes:

sum($contemporaries/group/@income) div count($contemporaries)

Etc. (modulo your definition of "average" and so forth)

I hope that helps,
Wendell

At 04:13 PM 5/27/2008, you wrote:
Hi,

I have an XML file in the following format:

<cutomers>
        <group income=1000>
                <person age=10/>
                <person age=15/>
                <person age=30/>
        </group>

        <group income=2000>
                <person age=10/>
                <person age=40/>
        </group>

        <group income=5000>
                <person age=20/>
                <person age=20/>
        </group>
</customers>

I would like to find the average of incomes for people of a particular
age? I am using XSLT 1.0. A double pass is not practical. Maybe this is
stupid simple and I am missing something basic, but I would appreciate
some help on this.


======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================

Current Thread