Subject: Re: [xsl] Grouping using concatenated key From: jmcreynolds@xxxxxxxxxxxxxx Date: Mon, 11 Dec 2006 10:13:46 -0600 (CST) |
Sorry for being thick headed...and I am not looking for anyone to write my code for me. But being so new to XSLT I have a ton of questions, this just being the current hurdle. David, I did as you instructed. See my XSL file below: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dt="http://xsltsl.org/date-time"> <xsl:import href="http://xsltsl.sourceforge.net/modules/stdlib.xsl"/> <xsl:key name="byObligationAndPhone" match="BillDetail" use="concat(OBLIGATION_ID, PHONE_NUMBER)" /> <xsl:key name="byObligation" match="BillDetail" use="OBLIGATION_ID" /> <!-- This is an XSLT template file. Fill in this area with the XSL elements which will transform your XML to XHTML. --> <xsl:template match="/"> <table border="1"> <tr> <th>OBLIGATION_ID</th> <th>PHONE_NUMBER</th> </tr> <xsl:for-each select="BillDetail[generate-id()=generate-id(key('byObligation',OBLIGATION_ID))]"> Calls for <xsl:value-of select="OBLIGATION_ID"/> <!-- now further group this by phone --> <xsl:variable name="OBLIGATION" select="OBLIGATION_ID"/> <xsl:for-each select="../BillDetail[generate-id()=generate-id(key('byObligationAndPhone',concat($OBLIGATION,PHONE_NUMBER)))]"> <tr> <td> <xsl:value-of select="OBLIGATION_ID"/> </td> <td> <xsl:value-of select="PHONE_NUMBER"/> </td> </tr> whatever ... </xsl:for-each> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> All that gets displayed is just the <th> tags...no data. Again, I am sorry that I am so green to all of this. In just a few days of messing around with this technology, I am wishing I had this knowledge in my "toolkit" many moons ago... Many thanks again! JOHN > > assuming thi sis xslt1, you need two keys > 1st level > > <xsl:key name="byObligation" match="BillDetail" use="OBLIGATION_ID" /> > second > > <xsl:key name="byObligationAndPhone" match="BillDetail" > use="concat(OBLIGATION_ID, PHONE_NUMBER)" /> > > > then just muenchian group as usual > > <xsl:for-each > select="BillDetail[generate-id()=generate-id(key('byObligation',OBLIGATION_ID))]"> > this is the group for <xsl:value-of select="OBLIGATION_ID"/> > now further group this by phone > <xsl:variable name="OBLIGATION" select="OBLIGATION_ID"/> > <xsl:for-each > select="../BillDetail[generate-id()=generate-id(key('byObligationAndPhone' > ,concat($OBLIGATION,PHONE_NUMBER)))]"/> > whatever > ... > > David
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Grouping using concatenat, David Carlisle | Thread | Re: [xsl] Grouping using concatenat, David Carlisle |
Re: [xsl] Grouping using concatenat, Mukul Gandhi | Date | Re: [xsl] Grouping using concatenat, David Carlisle |
Month |