RE: [xsl] finding the last element with attribute

Subject: RE: [xsl] finding the last element with attribute
From: "Kirov Plamen" <pkirov@xxxxxxxxx>
Date: Mon, 19 Feb 2007 16:46:38 +0200
Hi,

That's right :-)
Your last element with "<xsl:if test="./@selected = 'selected'">" equal
to true is the only one element with "selected": "<option
selected="selected" >Exeter</option>". If u put into other elements
"selected" attribute with "selected" value, the result will be
different.

BR,
Plamen Kirov

> -----Original Message-----
> From: Robert Walpole [mailto:robert.walpole@xxxxxxxxxxxx]
> Sent: Monday, February 19, 2007 4:39 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] finding the last element with attribute
>
> Hi,
>
> I am stuck on a small but annoying problem. I have broken it down into
> a
> couple of test files, the xml as follows...
>
> <?xml version="1.0" encoding="UTF-8"?>
> <areaserved>
>     <district>
>         <option>East Devon</option>
>         <option selected="selected" >Exeter</option>
>         <option>Torbay</option>
>     </district>
> </areaserved>
>
> ..and the xslt as follows...
>
> <?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>
>
> Basically, in the xml any of the option elements can have a "selected"
> attribute with a "selected" value. When I transform the xml I only
want
> to put out a comma if it is not the last option with a
> selected="selected" attribute. At the moment it always puts out a
comma
> unless it is actually the last option (i.e. Torbay). So with the xml
> file as it is it will put out "Exeter,"
>
> Thanks
> Rob Walpole

Current Thread