|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Finding the highest node value
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.
*/
Attachment:
pgp00013.pgp
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








