Subject: Re: Getting a longest node From: Phil Lanch <phil@xxxxxxxxxxxxxxx> Date: Mon, 17 Jan 2000 17:02:58 +0000 |
Wendell Piez wrote: > > Esteemed XSLers: > > Does anyone know a way I could define a variable that would contain the > number of characters in the longest node in a node-set? Let the node set in > question be //DIV[@type='Chapter']: if I have three, with string lengths > 88888, 99999, and 111110, I want my variable to be 111110. > > I tried iterating over the node set and resetting a variable if it passes > the greater-than test -- > > <xsl:template name="getlongest"> > <xsl:param name="nodeset"/> > <xsl:param name="longest" select="0"> > <xsl:for-each select="$nodeset"> > <xsl:if test="string-length(.) > $longest"> > <xsl:variable name="longest" select="string-length(.)"> > </xsl:if> > </xsl:for-each> > <xsl:value-of select="$longest"/> > </xsl:template> > > But of course since the reset variable is only scoped within the > xsl:for-each, all I get back is zero. :-> > I think I know I have to do this with some kind of recursion, but I can't Yeah, that's it. <xsl:template name="getlongest"> <xsl:param name="nodeset"/> <xsl:param name="longest" select="0"> <xsl:choose> <xsl:when test="$nodeset"> <xsl:choose> <xsl:when test="string-length($nodeset[1]) > $longest"> <xsl:call-template name="getlongest"> <xsl:with-param name="nodeset" select="$nodeset[position() > 1]"/> <xsl:with-param name="longest" select="string-length($nodeset[1])"/> </xsl:call-template> <xsl:when> <xsl:otherwise> <xsl:call-template name="getlongest"> <xsl:with-param name="nodeset" select="$nodeset[position() > 1]"/> <xsl:with-param name="longest" select="$longest"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:value-of select="$longest"/> </xsl:otherwise> </xsl:choose> </xsl:template> -- cheers phil "When they bring me fear soup to eat, I try not to eat it, I try to send it back. But sometimes I'm too afraid to and have to eat it anyway." XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: Getting a longest node, Sebastian Rahtz | Thread | Re: Getting a longest node, Wendell Piez |
RE: sorting and parameters, Kay Michael | Date | Re: No more 1957, Duane Nickull |
Month |