xsl-list
[Top] [All Lists]

Re: Problem writing xsl to convert xml to excel

2004-03-05 17:08:10
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