This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Finding the highest node value
- To: XSL-List at lists dot mulberrytech dot com
- Subject: Re: [xsl] Finding the highest node value
- From: Mark Miller <storefront2000 at yahoo dot com>
- Date: Fri, 26 Oct 2001 08:00:13 -0700 (PDT)
- Reply-To: xsl-list at lists dot mulberrytech dot com
I'd sort the list in reverse order and then select the
first position.
<xsl:template match="/">
<xsl:for-each select="population/country">
<xsl:sort select="population" order="descending"/>
<xsl:if test="position()=1">
<xsl:value-of select="name"/>:
<xsl:value-of select="population"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
On Thu, Oct 25, 2001 at 05:22:32PM +0200, Antoine
Quint wrote:
> Say I have an XML fragment going like this:
>
> =====================
>
> <population unit="million">
> <country>
> <name>China</name>
> <population>1273</population>
> <continent key="2"/>
> </country>
> <!-- some more <country> -->
> <country>
> <name>India</name>
> <population>1033</population>
> <continent key="2"/>
> </country>
> </population>
>
> =====================
>
> What I would like to do is store in a <xsl:variable>
the highest
> <population> value?
>
> How would one go around this?
Here's one way to do it:
<xsl:template name="find-max">
<xsl:param name="nodeset"/>
<xsl:param name="max"/>
<xsl:choose>
<xsl:when test="count($nodeset)=0">
<xsl:value-of select="$max"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="find-max">
<xsl:with-param name="nodeset">
<xsl:value-of select="$nodeset"/>
</xsl:with-param>
<xsl:with-param name="max">
<xsl:value-of select="$max"/>
</xsl:with-param>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="population">
<xsl:variable name="maxpopulation">
<xsl:call-template name="find-max">
<xsl:with-param name="nodeset"
select="country/population[position()>1]"/>
<xsl:with-param name="max"
select="number(country/population[1])"/>
</xsl:call-template>
</xsl:variable>
</xsl:template>
Tim.
*/
__________________________________________________
Do You Yahoo!?
Make a great connection at Yahoo! Personals.
http://personals.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list