Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Normalizing XML data
Message
General information
Forum:
ASP.NET
Category:
XML
Miscellaneous
Thread ID:
00817166
Message ID:
00818961
Views:
17
Hi Viv,

You could use the node position to introduce an id as in:
<?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,
>
>I was thinking more in terms of:
>
>
><?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>
>
>
>XML only validated using Notepad <g>. Trivial example but you get the idea..
>Regards,
>Viv
jMM
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform