Re: [xsl] Getting average

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

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


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

Sum their incomes:


Average their incomes:

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

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

I hope that helps,

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

I have an XML file in the following format:

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

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

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

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.      
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