|
Subject: Re: [xsl] Grouping using concatenated key From: David Carlisle <davidc@xxxxxxxxx> Date: Mon, 11 Dec 2006 16:53:36 GMT |
> Does this clarify things?
yes.
change match="/" to match="NewDataset"
<NewDataset>
<BillDetail>
<OBLIGATION_ID>2750</OBLIGATION_ID>
<PHONE_NUMBER>1234567890</PHONE_NUMBER>
<one/>
</BillDetail>
<BillDetail>
<OBLIGATION_ID>2750</OBLIGATION_ID>
<PHONE_NUMBER>1234567890</PHONE_NUMBER>
<two/>
</BillDetail>
<BillDetail>
<OBLIGATION_ID>2750</OBLIGATION_ID>
<PHONE_NUMBER>9876543210</PHONE_NUMBER>
</BillDetail>
<BillDetail>
<OBLIGATION_ID>3940</OBLIGATION_ID>
<PHONE_NUMBER>1234567890</PHONE_NUMBER>
</BillDetail>
</NewDataset>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:key name="byObligation" match="BillDetail" use="OBLIGATION_ID" />
<xsl:key name="byObligationAndPhone" match="BillDetail"
use="concat(OBLIGATION_ID, ':',PHONE_NUMBER)" />
<xsl:strip-space elements="*"/>
<xsl:output indent="yes"/>
<xsl:template match="NewDataset">
<xsl:for-each select="BillDetail[generate-id()=generate-id(key('byObligation',OBLIGATION_ID))]">
<xsl:variable name="OBLIGATION" select="OBLIGATION_ID"/>
<group>
<xsl:for-each
select="../BillDetail[generate-id()=generate-id(key('byObligationAndPhone'
,concat($OBLIGATION,':',PHONE_NUMBER)))]">
<group>
<xsl:copy-of select="key('byObligationAndPhone' ,concat($OBLIGATION,':',PHONE_NUMBER))"/>
</group>
</xsl:for-each>
</group>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
saxon nds.xml nds.xsl
<?xml version="1.0" encoding="utf-8"?>
<group>
<group>
<BillDetail>
<OBLIGATION_ID>2750</OBLIGATION_ID>
<PHONE_NUMBER>1234567890</PHONE_NUMBER>
<one/>
</BillDetail>
<BillDetail>
<OBLIGATION_ID>2750</OBLIGATION_ID>
<PHONE_NUMBER>1234567890</PHONE_NUMBER>
<two/>
</BillDetail>
</group>
<group>
<BillDetail>
<OBLIGATION_ID>2750</OBLIGATION_ID>
<PHONE_NUMBER>9876543210</PHONE_NUMBER>
</BillDetail>
</group>
</group>
<group>
<group>
<BillDetail>
<OBLIGATION_ID>3940</OBLIGATION_ID>
<PHONE_NUMBER>1234567890</PHONE_NUMBER>
</BillDetail>
</group>
</group>
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Grouping using concatenat, jmcreynolds | Thread | Re: [xsl] Grouping using concatenat, jmcreynolds |
| Re: [xsl] Grouping using concatenat, jmcreynolds | Date | Re: [xsl] Saxon Process is not rele, Spencer Tickner |
| Month |