RE: [xsl] First element with given attribute values

Subject: RE: [xsl] 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

Current Thread