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

RE: Variable containing unique values

Subject: RE: Variable containing unique values
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 21 May 2008 15:32:36 +0100
RE:  Variable containing unique values
I don't know where you've been looking, but this code doesn't make sense at
all. Sorting a sequence is never going to reduce the number of items in the
sequence. (And the path expression used in xsl:sort should almost never
begin with "/", because that would typically mean that every item has the
same sort key - or in your case, no sort key at all).

First decide whether you're using XSLT 1.0 or 2.0. This kind of thing is
MUCH easier in 2.0.

In XSLT 2.0, use xsl:for-each-group.

In XSLT 1.0, use Muenchian grouping, described at

Michael Kay

> -----Original Message-----
> From: Hesselberth, Jan [mailto:Jan.Hesselberth@xxxxxxxxxxxxxxxxxx] 
> Sent: 21 May 2008 15:00
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject:  Variable containing unique values
> I've read the book and looked at the examples but I can't 
> manage to create a variable containing unique values for my 
> xml. All I get is a list of all values.
> I need a variable containing unique values for rolloverDate. 
> I've tried all sorts of rules for testing for current 
> rolloverDate not being equal to previous rollover dates but I 
> can't get it to work.
> Can you help please.
> Regards
> 	Jan Hesselberth
> The code I have is
> 	<xsl:variable name="unique-dates">
> 		<xsl:for-each
> 		select
> ="REPORT/Rollover/RolloverForecast/summaryAccount/element">
> 			<xsl:sort
> select="/rolloverDate[not(preceding::rolloverDate= current())]"/>
> 		<xsl:copy-of select="."/>
> 		</xsl:for-each>
> 	</xsl:variable>	
> The xml snippet looks like
> <summaryAccount id="12345"> 
> 	<isAutomatedRollover>N</isAutomatedRollover> 
> 	<element id="1"> 
> 		<rolloverDate>2008-04-04</rolloverDate> 
> 	</element> 
> 	<element id="2"> 
> 		<rolloverDate>2008-04-04</rolloverDate> 
> 	</element>
> </summaryAccount>
> <summaryAccount id="12346"> 
> 	<isAutomatedRollover>Y</isAutomatedRollover> 
> 	<element id="1"> 
> 		<rolloverDate>2008-04-22</rolloverDate> 
> 	</element>
> </summaryAccount>
> <summaryAccount id="12347"> 
> 	<isAutomatedRollover>Y</isAutomatedRollover> 
> 	<element id="1"> 
> 		<rolloverDate>2008-04-22</rolloverDate> 
> 	</element> 
> 	<element id="2"> 
> 		<rolloverDate>2008-04-17</rolloverDate> 
> 	</element>
> </summaryAccount>
> LEGAL NOTICE    The information contained in this e-mail and 
> any attachments are private and confidential.  This message 
> is solely intended for a particular recipient, if you are not 
> the intended  recipient you are prohibited from storing, 
> copying, disseminating or using the information  in any way.  
> If you received this e-mail in error please notify the sender 
> immediately.  E-mail transmission cannot be guaranteed to be 
> secure or error-free as information could  be intercepted, 
> corrupted, lost, destroyed, arrive late or incomplete, or 
> contain viruses.  The sender therefore does not accept 
> liability for any errors, viruses or omissions in the  
> contents of this message, which arise as a result of 
> transmission. This e-mail is not  intended to create legally 
> binding commitments on behalf of Northern Rock plc, nor do 
> its  contents reflect the corporate views or policies of 
> Northern Rock plc.  Northern Rock plc,  Registered Office 
> Northern Rock House Gosforth Newcastle upon Tyne NE3 4PL.  
> Registered in England, number 3273685. Telephone No: 0191 
> 2857191  Northern Rock plc is authorised and regulated by the 
> Financial Services Authority for  deposit-taking; advising on 
> and arranging mortgages and general insurance; and for  
> introducing life assurance and investments.
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit 
> http://www.messagelabs.com/email 
> ______________________________________________________________________

Current Thread


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.
First Name
Last Name
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.