At 06:10 PM 3/5/2004, David C wrote:
> printed from column1 instead of column0.
use position() -1 instead of position(), but you are making it far
more complicated than it need be
For example
<xsl:for-each select="row">
<xsl:apply-templates select=".">
<xsl:with-param name="rownumber" select="position()"/>
</xsl:apply-templates>
</xsl:for-each>
In this case, won't the position always be 1, since only a single node is
ever selected by the apply-templates?
Which may be the bug the OP is complaining of....?
could just be
<xsl:apply-templates select="row"/>
then your row template just needs to be
<xsl:template match="row">
<xsl:variable name="rownumber" select="position()">
Hear, hear.
Also, no one has issued yet (in this thread) the usual warnings about
position() including in its count any neighboring text nodes, etc. These
won't affect David's particular example since he has select="row", but in
the default case of apply-templates (which selects child::node()), the
position count will include unstripped whitespace-only text nodes.
It's a reason to be careful of position() ... "the position of the current
node within the current node list" is mysterious for those who haven't
grasped yet what that node, and that list, actually are.
Cheers,
Wendell
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list