[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Grouping and Key Problem
I'm having problems with grouping and the use of keys can anyone tell me what I'm doing wrong here. I have two records of John on the 12/13/2001 They shouldn't display separated. How can I make this tranform into something like this: 12/13/2001 John Water Plant Mail 12/13/2001 Jimmy Mail Right now it is giving this: 12/13/2001 John Water Plant Mail John Water Plant Mail 12/13/2001 Jimmy Mail XML File <?xml version="1.0" encoding="UTF-8"?> <NewDataSet> <Table> <mymonth>12</mymonth> <myday>13</myday> <myyear>2001</myyear> <CustomerName>John</CustomerName> <date>12/13/2001</date> <TimesPerDay>4</TimesPerDay> <ServiceName>Water Plant</ServiceName> </Table> <Table> <mymonth>12</mymonth> <myday>13</myday> <myyear>2001</myyear> <CustomerName>John</CustomerName> <date>12/13/2001</date> <TimesPerDay>5</TimesPerDay> <ServiceName>Mail</ServiceName> </Table> <Table> <mymonth>12</mymonth> <myday>13</myday> <myyear>2001</myyear> <CustomerName>Jimmy</CustomerName> <date>12/13/2001</date> <TimesPerDay>5</TimesPerDay> <ServiceName>Mail</ServiceName> </Table> <Table> <mymonth>12</mymonth> <myday>14</myday> <myyear>2001</myyear> <CustomerName>Jimmy</CustomerName> <date>12/14/2001</date> <TimesPerDay>5</TimesPerDay> <ServiceName>Mail</ServiceName> </Table> </NewDataSet> XSLT <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" indent="yes"/> <xsl:key name="kCustomer" match="Table" use="CustomerName"/> <xsl:key name="kDate" match="Table" use="date"/> <xsl:template match="NewDataSet"> <head> <title>Employee's Week Schedule</title> <link href="../css/reports.css" type="text/css" rel="stylesheet" /> </head> <table border="0" cellpadding="4" style="border-collapse:collapse;" width="100%"> <tr> <td colspan="1"> <b>Customer Name</b> </td> <td colspan="1"> <b>Service Name</b> </td> <td colspan="2"> <b>Times Per Day</b> </td> </tr> <xsl:apply-templates select="Table[generate-id() = generate-id(key('kDate', date))]" mode="row1"/> </table > </xsl:template> <xsl:template match="Table" mode="row1"> <tr> <td colspan="4"> <div style="background-color:red"><xsl:value-of select="date"/></div> <xsl:apply-templates select="parent::NewDataSet/Table[date = current()/date][CustomerName = key('kCustomer', CustomerName)/CustomerName]" mode="row2"/> </td> </tr> </xsl:template> <xsl:template match="Table" mode="row2"> <tr> <td colspan="4"> <hr/> <xsl:value-of select="CustomerName"/> <xsl:apply-templates select="parent::NewDataSet/Table[date = current()/date][CustomerName = current()/CustomerName][ServiceName]" mode="row3"/> </td> </tr> </xsl:template> <xsl:template match="Table" mode="row3"> <tr> <td /> <td colspan="1"> <xsl:value-of select="ServiceName"/> </td> <td colspan="2"> <xsl:value-of select="TimesPerDay"/> </td> </tr> </xsl:template> </xsl:stylesheet> ===== Home: (513) 661 - 8007 Cell: (513) 884 - 4868 Email: jamesanthonyhunt@xxxxxxxxx __________________________________ Do you Yahoo!? Yahoo! Small Business $15K Web Design Giveaway http://promotions.yahoo.com/design_giveaway/
|
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
|