Subject: RE: [xsl] working out where the last() is From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 6 Oct 2006 11:41:17 +0100 |
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: [xsl] 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)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] working out where the las, andrew welch | Thread | RE: [xsl] working out where the las, Robert Walpole |
Re: [xsl] working out where the las, andrew welch | Date | RE: [xsl] working out where the las, Robert Walpole |
Month |