<?xml version='1.0'?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <Data> <Lead> <xsl:apply-templates select="Data/Lead[not(DefendantNumber = preceding-sibling::Lead/DefendantNumber)]" mode="Defendant"/> </Lead> </Data> </xsl:template> <xsl:template match="Lead" mode="Defendant"> <DefendantNumber><xsl:value-of select="DefendantNumber"/></DefendantNumber> <FirstName><xsl:value-of select="FirstName"/></FirstName> <xsl:apply-templates select="../Lead[DefendantNumber = ./DefendantNumber]" mode="Count"/> </xsl:template> <xsl:template match="Lead" mode="Count"> <Count> <CountSequenceNo><xsl:apply-templates select="CountSequenceNo"/></CountSequenceNo> <Offense><xsl:apply-templates select="Offense"/></Offense> </Count> </xsl:template> </xsl:stylesheet>>The result I'm looking for is:
><Data> > <Lead> > <DefendantNumber>09999999CF10A</DefendantNumber> > <FirstName>GEORGE</FirstName> > <Count> > <CountSequenceNo>001</CountSequenceNo> > <Offense>SELL/MAN/DEL POSS/W/INT C</Offense> > </Count> > <Count> > <CountSequenceNo>002</CountSequenceNo> > <Offense>POSSESSION OF COCAINE</Offense> > </Count> > </Lead> ></Data> >>
>>><Data> >>> <Lead> >>> <DefendantNumber>09999999CF10A</DefendantNumber> >>> <FirstName>GEORGE</FirstName> >>> <CountSequenceNo>001</CountSequenceNo> >>> <Offense>SELL/MAN/DEL POSS/W/INT C</Offense> >>> </Lead> >>> <Lead> >>> <DefendantNumber>09999999CF10A</DefendantNumber> >>> <FirstName>GEORGE</FirstName> >>> <CountSequenceNo>002</CountSequenceNo> >>> <Offense>POSSESSION OF COCAINE</Offense> >>> </Lead> >>></Data> >>>>>>