Subject: RE: First element with given attribute values
From: "Andreas L. Delmelle" <a_l.delmelle@xxxxxxxxxx>
Date: Sun, 11 Apr 2004 16:41:05 +0200
|
> -----Original Message-----
> From: Nicolas Mailhot [mailto:Nicolas.Mailhot@xxxxxxxxxxx]
>
<snip />
> Which I need to trim, keeping only the first element with an unique
> attibute value, or unique attribute values. For example, if I only
> wanted the first element with an unique name,version pair this would
> give :
<snip />
> Is there a clean way to do it ?
>
Yup, define a key like:
<xsl:key name="foo-key" match="foo"
use="concat(@name,' ',@version)" />
Then further on use:
<xsl:variable select="//foo[generate-id()=generate-id(
key('foo-key',concat(@name,' ',@version)))]" />
To give you the nodeset containing all foo nodes whose id equals the first
node returned by key().
Apply templates to the variable, and you're set.
Cheers,
Andreas
|