<?xml version='1.0'?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <Data> <Offences> <xsl:apply-templates select="Data/Lead[not(Offence = preceding-sibling::Lead/Offence)]" mode="Offence"/> </Offences> <Cases> <Case> <xsl:apply-templates select="Data/Lead[not(DefendantNumber = preceding-sibling::Lead/DefendantNumber)]" mode="Defendant"/> </Case> </Cases> <Counts> <xsl:apply-templates select="Data/Lead/CountSequenceNo"/> </Counts> </Data> </xsl:template> <xsl:template match="Lead" mode="Defendant"> <Position><xsl:value-of select="position()"/></Position> <DefendantNumber><xsl:value-of select="DefendantNumber"/></DefendantNumber> <FirstName><xsl:value-of select="FirstName"/></FirstName> </xsl:template> <xsl:template match="CountSequenceNo"> <Count> <DefendantNumber> <xsl:value-of select="../../Lead/DefendantNumber"/> </DefendantNumber> <CountSequenceNo><xsl:value-of select="."/></CountSequenceNo> <Offense> <xsl:attribute name="idref"><xsl:value-of select="position()"/></xsl:attribute> </Offense> </Count> </xsl:template> <xsl:template match="Lead" mode="Offence"> <Offence> <xsl:attribute name="id"><xsl:value-of select="position()"/></xsl:attribute> <xsl:value-of select="Offense"/> </Offence> </xsl:template> </xsl:stylesheet>>Hi John,
><?xml version="1.0"?> ><Data> > <Offences> > <data:Offense id="1">SELL/MAN/DEL POSS/W/INT C</Offense> > <data:Offense id="2">POSSESSION OF COCAINE</Offense> > <data:Offense id="3">WALKING TOO SLOWLY</Offense> > </Offences> > > <Cases> > <Case> > <DefendantNumber>09999999CF10A</DefendantNumber> > <FirstName>GEORGE</FirstName> > <Counts> > <ref:Offense ref="1"/> > <ref:Offense ref="2"/> > </Counts> > </Case> > <Case> > <DefendantNumber>09999999CF10B</DefendantNumber> > <FirstName>FRED</FirstName> > <Counts> > <ref:Offense ref="1"/> > <ref:Offense ref="3"/> > </Counts> > </Case> > </Cases> ></Data> >>