xsl-list
[Top] [All Lists]

Re: [xsl] Variable containing unique values

2008-05-21 07:36:55

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>
--~--