[xsl] using position() and last() with join
Subject: [xsl] using position() and last() with join
From: Terry Ofner <tofner@xxxxxxxxxxx>
Date: Thu, 29 May 2008 12:02:39 -0400
|
I am attempting to insert a return ( ) after each element but the
last of a node set generated by a join. I am building a table in
which one or more lesson names will be pulled into the right-hand
cell of each row. The join works fine.
Here is the part of the stylesheet in question:
<xsl:for-each-group select="current-group()/SS" group-by=".">
<!--left-hand cell text selected from main xml document-->
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="342.5">
<xsl:copy-of select="node()"/>
</Cell>
<!--right-hand cell; nodes from $lessonFile-->
<Cell aid:table="cell" aid:crows="1" aid:ccols="1"
aid:ccolwidth="197.">
<xsl:variable name="skillNumber" select="current-group
()/../@skill"/>
<xsl:for-each select="$lessonFile">
<xsl:copy-of select="key('lessonName_by_num',
$skillNumber)/child::node()" />
<!--the if statement below does nothing here or directly above the
copy-of line-->
<xsl:if test="position() != last()">
<xsl:text> </xsl:text> </xsl:if>
</xsl:for-each>
</Cell>
</xsl:for-each-group>
Thanks in advance for any suggestions.
Terry Ofner