xsl-list
[Top] [All Lists]

[xsl] working out where the last() is

2006-10-06 03:14:03
Hi,

I have some XML data which contains an areaserved node as follows:

<areaserved>
        <district name="South Hams">
                <town name="Dartmouth">
                        <settlement name="Kingswear"/>
                </town>
                <town name="Totnes"/>
        </district>
        <district name="Torbay"/>
</areaserved>

I am trying to write some XSLT to transform this to a list as follows:

Kingswear, Totnes, Torbay

In other words I want to output the name attribute of elements that have
no children and I want these names to be seperated by a comma. I can
output the attributes ok but my problem is trying to prevent the code
putting out a comma at the end of the list, given that I don't know
whether the end of the list will be a settlement, town or district. I
have tried using last() like this:

<xsl:if test="position() != last()">,&#160;</xsl:if>

but this only works on the context node, so in this case Kingswear,
Totnes and Torbay are all the last and none of them get a comma! 

Any ideas anyone?

Many Thanks
Rob Walpole
(robert(_dot_)walpole(_at_)devon(_dot_)gov(_dot_)uk)




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

<Prev in Thread] Current Thread [Next in Thread>