[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Getting node w/ lowest attribute value

Subject: Re: Getting node w/ lowest attribute value
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Sun, 17 Aug 2008 13:21:17 +0530
Re:  Getting node w/ lowest attribute value
I think, in this case it will become a grouping and sorting problem.
Please try this stylesheet,

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                       version="2.0">

<xsl:output method="xml" indent="yes" />

<xsl:template match="addresses">
  <result>
    <xsl:for-each-group select="address[@IsActive = 'true']"
group-by="@NumOrder">
      <xsl:sort select="current-grouping-key()" order="ascending"
data-type="number" />
      <xsl:copy-of select="." />
    </xsl:for-each-group>
  </result>
</xsl:template>

</xsl:stylesheet>

This will output all the 'address' elements (only 1st in the group) as
required. You can later select the nth one (or the 2nd) if needed.

On Sat, Aug 16, 2008 at 11:12 PM, Bordeman, Chris
<Chris.Bordeman@xxxxxxxxxxxxxxxxx> wrote:
> Cool, thanks Mukul, now how do I get the 2nd lowest?
>
> -----Original Message-----
> From: Mukul Gandhi [mailto:gandhi.mukul@xxxxxxxxx]
> Sent: Friday, August 15, 2008 1:10 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re:  Getting node w/ lowest attribute value
>
> Please try this,
>
> addresses/address[(@IsActive = 'true') and (@NumOrder =
> min(../address[@IsActive = 'true']/@NumOrder))][1]
>
> This uses the XPath 2.0 function, 'min'.
>
> On Fri, Aug 15, 2008 at 11:22 PM, Bordeman, Chris
> <Chris.Bordeman@xxxxxxxxxxxxxxxxx> wrote:
>> Hi all.
>>
>> I have some nodes like:
>>
>> <addresses>
>>    <address IsActive="false" NumOrder=1>[...]</address>
>>    <address IsActive="true" NumOrder=3>[...]</address>
>>    <address IsActive="true" NumOrder=2>[...]</address> </addresses>
>>
>> How do I get the first address node where IsActive=true AND has the
>> lowest value for the NumOrder attribute?
>>
>> In the above case I'd want the 3rd address node (IsActive="true" and
>> NumOrder=2).
>>
>> Any assistance would be appreciated.  Thanks.


-- 
Regards,
Mukul Gandhi

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.