|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Getting a longest node
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
|
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








