RE: [xsl] Using keys when unique identifier is a multi node value

Subject: RE: [xsl] Using keys when unique identifier is a multi node value
From: "Andreas L. Delmelle" <a_l.delmelle@xxxxxxxxxx>
Date: Sat, 27 Mar 2004 16:02:54 +0100
> -----Original Message-----
> From: Kenny Akridge [mailto:kenny@xxxxxxxxxxxxxxxxx]
>
> I've looked at the FAQ and can't seem to find an exact answer.  I
> am trying
> to generate all nodes who contain two specific children nodes.
> I'm thinking
> that using a key would be the best method, but it doesn't seem right to me
> to use multiple keys.
>
> For instance, if I have:
>
> <Attendance>
> 	<FirstName>Bill</FirstName>
> 	<LastName>Smith</LastName>
> 	... some other important data
> </Attendance>
>
>

Hi,

Very roughly, you can go:

<!-- global to your stylesheet -->
<xsl:key name="att-by-name" match="Attendance"
         select="concat(LastName,' ',FirstName)" />
...
<!-- in a template somewhere -->
<xsl:variable name="varName" select="concat(
                               current()/LastName,' ',
                                 current()/FirstName)" />
...
<xsl:apply-templates select="key('att-by-name',$varName)" />


Maybe you want to refine this further if the format of the variable names is
variable too (WRT to upper-/lowercase), but this should get you going.

Hope this helps!

Cheers,

Andreas

Current Thread