xsl-list
[Top] [All Lists]

[xsl] finding the last element with attribute

2007-02-19 07:39:46
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



--~------------------------------------------------------------------
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>
--~--