xsl-list
[Top] [All Lists]

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

2004-03-27 08:02:54
-----Original Message-----
From: Kenny Akridge [mailto:kenny(_at_)akridgefamily(_dot_)com]

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