xsl-list
[Top] [All Lists]

RE: [xsl] Variable containing unique values

2008-05-21 07:54:14
Thanks for the reply David. I'm using xslt 1 and this has solved most of
the problem. I just need to get the dates in order now.
Thanks again.
Jan
-----Original Message-----
From: David Carlisle [mailto:davidc(_at_)nag(_dot_)co(_dot_)uk] 
Sent: 21 May 2008 15:36
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Variable containing unique values


I can't remember if you use xslt 1 or 2, in xslt2 

select="distinct-values(//rolloverDate)" does what you ask.

But assuming you are using xslt 1 then getting unique values is the same
as grouping, and just using one of each group.

select="/rolloverDate[not(preceding::rolloverDate
 

an XML document can only have one top level element so 

/rolloverDate

either matches that element (if the document element is rolloverDate) or
matches nothing. In either case the document eleemnt never has siblins
so the preceding::rolloverDate in the filter will never select anything.


You mean to select the child of the current element, so don't start with
/ which takes you to thetop of the tree:

select="rolloverDate[not(preceding::rolloverDate= current())]"/>


but note this will repeatedly look back over all earlier nodes so can be
quite slow on large sets, hence muenchian grouping.



<xsl:key name="e" match="element" use="rolloverDate"/>
...


        <xsl:variable name="unique-dates">
                <xsl:for-each
                select
="REPORT/Rollover/RolloverForecast/summaryAccount/element[generate-id()=
generate-id(key('e',rolloverDate)[1])]">
   <xsl:copy-of select="."/>
        </xsl:for-each>
        </xsl:variable>

David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



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 
______________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--