Re: [xsl] Connecting the Source and Destination fields

Subject: Re: [xsl] Connecting the Source and Destination fields
From: Ronan Klyne <ronan.klyne@xxxxxxxxxxx>
Date: Mon, 20 Aug 2007 10:02:21 +0100
Andrew Welch wrote:
> On 8/20/07, Yaswanth <yaswanth.mtrx@xxxxxxxxx> wrote:
>> Hi Ronan and Andrew,
>> Thanks for the Help.
>> I am able to get the exact result .
>> I am working on it . I think I need to understand XSL:Key ..
>> I will look into it..
>> Ronan , Thanks for the brilliant solution !
> 
> If you did want to use a  key then all you need to do is define the key:
> 
> <xsl:key name="conn-by-source" match="connection" use="@source"/>
> 
> then put this wherever you want your output:
> 
> <xsl:text>event.0</xsl:text>
> <xsl:apply-templates select="key('conn-by-source', 'event.0')"/>
> 
> and have this template:
> 
> <xsl:template match="connection">
> 	<xsl:text> -> </xsl:text>
> 	<xsl:value-of select="@destination"/>
> 	<xsl:apply-templates select="key('conn-by-source', @destination)"/>
> </xsl:template>
> 
> and thats it - no need for recursive named templates: the "recursion"
> stops when the key doesn't return an element for a given string.
> 

A much cleaner solution than mine - very nice...
Out of curiosity, how would your solution change if we couldn't
guarantee that event.0 would be first? I couldn't express that
particularly elegantly either...

	# r

-- 
Ronan Klyne
Business Collaborator Developer
Tel: +44 (0)870 163 2555
ronan.klyne@xxxxxxxxxxx
www.groupbc.com

Current Thread