Subject: Re: [xsl] Finding the highest node value From: Mark Miller <storefront2000@xxxxxxxxx> Date: Fri, 26 Oct 2001 08:00:13 -0700 (PDT) |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Finding the highest node , Tim Waugh | Thread | [xsl] Can't pass parameters across , Hunsberger, Peter |
RE: [xsl] escaping from CDATA, Chris Bayes | Date | Re: [xsl] output escaping (i just d, David Carlisle |
Month |