xsl-list
[Top] [All Lists]

RE: [xsl] finding the last element with attribute

2007-02-19 09:02:57
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(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com] 
Sent: 19 February 2007 14:54
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] finding the last element with attribute


On 2/19/07, Robert Walpole 
<robert(_dot_)walpole(_at_)devon(_dot_)gov(_dot_)uk> 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....

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--