[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: finding the last element with attribute

Subject: RE: finding the last element with attribute
From: "Robert Walpole" <robert.walpole@xxxxxxxxxxxx>
Date: Mon, 19 Feb 2007 16:02:32 -0000
RE:  finding the last element with attribute
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.

Thanks
Rob


> -----Original Message-----
> From: Andrew Welch [mailto:andrew.j.welch@xxxxxxxxx]
> Sent: 19 February 2007 14:54
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re:  finding the last element with attribute
>
>
> On 2/19/07, Robert Walpole <robert.walpole@xxxxxxxxxxxx> wrote:
> > 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,"
>
> Clear as mud, I'm afraid.  Expected output is always really
> helpful here.
>
> It's good to see local government using XSLT by the way....

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.