This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Node with maximum attribute value
- To: xsl-list at mulberrytech dot com
- Subject: Re: Node with maximum attribute value
- From: Phil Lanch <phil at aldigital dot co dot uk>
- Date: Mon, 21 Feb 2000 20:04:39 +0000
- Organization: A L Digital
- References: <LPBBKKGMPEHFJIDKHOMGAEMJCBAA.rbirkby@thundermain.com>
- Reply-To: xsl-list at mulberrytech dot com
Richard Birkby wrote:
>
> Maybe I didn't explain all of the problem so well.
>
> I want to use the variable in an XPath outside of the xsl:for-each, ie in
> another scope.
>
> The following code works, but it could hardly be called elegant.
>
> <!-- Iterate over a descending node-set -->
> <xsl:for-each select="closing-price">
> <xsl:sort data-type="number" select="@mid" order="descending"/>
>
> <!-- Choose only the first node (ie largest) -->
> <xsl:if test="position()=1">
> <xsl:variable name="MaxValue" select="@mid" />
>
> <!-- Now iterate over the list again in original sort order -->
> <xsl:for-each select="closing-price">
>
> <!-- Do Something with $MaxValue -->
>
> </xsl:for-each>
>
> </xsl:if>
> </xsl:for-each>
you can do that by by initializing a variable with an xsl:for-each loop
(& i don't even need to mention RTFs ...) -
<xsl:variable name="MaxValue">
<xsl:for-each select="closing-price">
<xsl:sort data-type="number" select="@mid" order="descending"/>
<xsl:if test="position()=1">
<xsl:value-of select="@mid"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:for-each select="closing-price">
...
<xsl:if test="@mid = $MaxValue"> ... </xsl:if>
</xsl:for-each>
--
cheers
phil
"I have remarked very clearly that I am often of one opinion
when I am lying down and of another when I am standing up ..."
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list