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