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