[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: A unique distinct problem
I think this should work for you: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes"/> <xsl:template match="/"> <xsl:apply-templates select="/report/subscriber/location/shift_date[not(@date=preceding::shift_da te/@date)]"> <xsl:sort select="@date"/> </xsl:apply-templates> </xsl:template> <xsl:template match="shift_date"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates select="/report/subscriber/location/shift_date[@date=current()/@date]/credit _card[not(@type=preceding::credit_card[../@date=current()/@date]/@type)]"/> </xsl:copy> </xsl:template> <xsl:template match="credit_card"> <xsl:copy> <xsl:copy-of select="@*"/> </xsl:copy> </xsl:template> </xsl:stylesheet> Evan Lenz XYZFind Corp. > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Nate > Sent: Wednesday, August 08, 2001 1:49 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: A unique distinct problem > > > I have found a lot of info on the web, including the archive for this > list, about selecting distinct nodes using the preceding-sibling axis, and > what not. However, I still haven't been able to find a solution for this > somewhat more convoluted problem. Given this xml: > > <report> > <subscriber number="001930"> > <location number="358107"> > <shift_date date="09-JUL-01"> > <credit_card type="Visa"> > </credit_card> > <credit_card type="Switch"> > </credit_card> > <credit_card type="Mastercard"> > </credit_card> > </shift_date> > <shift_date date="10-JUL-01"> > <credit_card type="Visa"> > </credit_card> > </shift_date> > </location> > <location number="358108"> > <shift_date date="08-JUL-01"> > <credit_card type="American Express"> > </credit_card> > <credit_card type="Visa"> > </credit_card> > <credit_card type="Switch"> > </credit_card> > <credit_card type="Mastercard"> > </credit_card> > </shift_date> > <shift_date date="09-JUL-01"> > <credit_card type="Visa"> > </credit_card> > <credit_card type="Mastercard"> > </credit_card> > </shift_date> > </location> > <location number="358199"> > <shift_date date="08-JUL-01"> > <credit_card type="Visa"> > </credit_card> > <credit_card type="Switch"> > </credit_card> > <credit_card type="Mastercard"> > </credit_card> > </shift_date> > <shift_date date="10-JUL-01"> > <credit_card type="American Express"> > </credit_card> > <credit_card type="Visa"> > </credit_card> > <credit_card type="Mastercard"> > </credit_card> > </shift_date> > </location> > </subscriber> > </report> > > I want to iterate over a list of shift_dates and all the credit cards that > were used on that date for each subscriber. So I want a list like this: > > <shift_date date="08-JUL-01"> > <credit_card type="American Express"/> > <credit_card type="Visa"/> > <credit_card type="Switch"/> > <credit_card type="Mastercard"/> > </shift_date> > <shift_date date="09-JUL-01"/> > <credit_card type="Visa"/> > <credit_card type="Switch"/> > <credit_card type="Mastercard"/> > </shift_date> > <shift_date date="10-JUL-01"/> > <credit_card type="American Express"/> > <credit_card type="Visa"/> > <credit_card type="Mastercard"/> > </shift_date> > > So I basicly want every credit card on each date, but without duplicates > in the list. Is this possible with XSLT 1.0? Or should I wait for > select-distinct in XSLT 2.0? > > Please cc my email, nshafer@xxxxxxxxxxxx, in the reply, I am not > subscribed to this list. > > Thanks, > Nate > > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|