[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 (&#10;) 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>&#10;</xsl:text> </xsl:if>
</xsl:for-each>
</Cell>
</xsl:for-each-group>




Thanks in advance for any suggestions.


Terry Ofner


Current Thread