[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: working out where the last() is
In XSLT 2.0 (with $a as the <areaserved> element): <xsl:value-of select="$a//*[not(*)]/@name" separator=", "/> In 1.0: <xsl:for-each select="$a//*[not(*)]/@name"> <xsl:value-of select="."/> <xsl:if test="position() != last()">, </xsl:if> </xsl:for-each> last() gives you the number of items in the current node list, which in this case is the nodes selected by $a//*[not(*)]/@name. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Robert Walpole [mailto:robert.walpole@xxxxxxxxxxxx] > Sent: 06 October 2006 11:14 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: working out where the last() is > > 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()">, </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.walpole@xxxxxxxxxxxx)
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|