[Home] [By Thread] [By Date] [Recent Entries]

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

Current Thread
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member