Re: [xsl] finding the last element with attribute

Subject: Re: [xsl] finding the last element with attribute
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Mon, 19 Feb 2007 16:12:47 +0000
On 2/19/07, Robert Walpole <robert.walpole@xxxxxxxxxxxx> wrote:
I am trying to output the string value of the option elements that have
a selected="selected" attribute and separate the output with commas. I
don't want a comma after the last string value that I output. If all of
the option elements had a selected="selected" attribute then I would
expect to get: "East Devon, Exeter, Torbay" - which I do. If only the
first two had a selected="selected" attribute then I would expect to get
"East Devon, Exeter" but instead I get "East Devon, Exeter," so I need
to loose that comma at the end. I need a test to find the last option
element that has a selected="selected" attribute.

Much clearer :) In which case you want this:


<xsl:for-each select="areaserved/district/option[@selected = 'selected']">
 <xsl:value-of select="."/>
 <xsl:if test="position() != last()">,&#160;</xsl:if>
</xsl:for-each>

Here the predicate has been moved to the select on the for-each, so
that you only select the nodes with @selected = 'selected'.

cheers
andrew

Current Thread