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>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--