Subject: Re: [xsl] Finding the highest node value From: Tim Waugh <twaugh@xxxxxxxxxx> Date: Thu, 25 Oct 2001 16:49:03 +0100 |
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
Description: PGP signature
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Finding the highest node valu, Antoine Quint | Thread | Re: [xsl] Finding the highest node , Tim Waugh |
RE: [xsl] escaping from CDATA, Michael Kay | Date | RE: [xsl] How to read the encoding , Michael Kay |
Month |