Subject: Re: [xsl] Variable containing unique values From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 21 May 2008 15:36:24 +0100 |
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. ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Variable containing uniqu, Hesselberth, Jan | Thread | RE: [xsl] Variable containing uniqu, Hesselberth, Jan |
RE: [xsl] Variable containing uniqu, Michael Kay | Date | RE: [xsl] Variable containing uniqu, Hesselberth, Jan |
Month |