RE: [xsl] finding the last element with attribute

Subject: RE: [xsl] finding the last element with attribute
From: "Robert Walpole" <robert.walpole@xxxxxxxxxxxx>
Date: Wed, 21 Feb 2007 09:14:28 -0000
Thanks Andrew and Mukul. This does exactly what I expected now. I
should've realised that a predicate would be more effective than using
<xsl:if/> to find the required nodes.

Cheers
Rob

> -----Original Message-----
> From: Mukul Gandhi [mailto:gandhi.mukul@xxxxxxxxx]
> Sent: 19 February 2007 16:23
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] finding the last element with attribute
>
>
> On 2/19/07, Robert Walpole <robert.walpole@xxxxxxxxxxxx> wrote:
> > <?xml version="1.0" encoding="UTF-8"?>
> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> > version="2.0">
> >    <xsl:template match="/">
> >        <xsl:for-each select="areaserved/district/option">
> >            <xsl:if test="./@selected = 'selected'">
> >                <xsl:value-of select="."/>
> >                <xsl:if test="position() != last()">,&#160;</xsl:if>
> >            </xsl:if>
> >        </xsl:for-each>
> >    </xsl:template>
> > </xsl:stylesheet>
>
> I believe, Andrew's suggestion would work for you. The error in above
> logic is - position() & last() are referring to 'position' and 'last'
> of node-set formed by areaserved/district/option, and not
> areaserved/district/option[@selected = 'selected'] (as Andrew just
> pointed).
>
> --
> Regards,
> Mukul Gandhi

Current Thread