xsl-list
[Top] [All Lists]

RE: xsl:number problem

2003-06-18 07:08:50
Rob,

Thanks for the direction.  My output should look like this:
1
2
3
4
5

Comments

If I use the current code, the output is 
1
2
3
4
5
Comments
Comments

I tried to change the value of Row attribute to <xsl:valueOf 
select="last()-1"/>.  The output is 
1
2
3
4
5









Comments
The Comments cell is way down to the nottom of the page (around 100 rows in 
between).  I think that the key to solve my problem is to find the TOTAL NUMBER 
of productId in my xml tree.  How can you do that?  Please find the xml below.  
product is at the different levels of the node tree.  I need to find out the 
total number of times it is in the xml tree.  xsl:number is not a good way to 
return a total number.  It seems to be just looping through the tree.  Can 
count(productId) be used here???

THANKS!!!

Charlene

-----Original Message-----
From: Rob Anderson [mailto:roba(_at_)bml(_dot_)uk(_dot_)com]
Sent: Wednesday, June 18, 2003 9:22 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] xsl:number problem


try using ...position () = last() - 1...?

or can you show an example of what you are expecting

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com]On Behalf Of 
Yan, Charlene
Sent: 18 June 2003 14:10
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] xsl:number problem


Mike,

Thanks for replying.  I'm going to try to show what I need to do.
1.  My xml looks like this:
<solution>
        <product>
                <productID>1</productId>
        </product>
        <product>
                <productID>2</productId>
        </product>
        <program>
                <product>
                <productID>3</productId>
                </product>
                <product>
                <productID>4</productId>
                </product>
        </program>
        <product>
                <productID>5</productId>
        </product>
</solution>

2. My xsl looks like this:
<xsl:template match="productId">

     <gmr:Cell Col="1"  Row="27" ValueType="60">
      <xsl:variable name="rownumber"><xsl:number level="any"
count="prodctId"/></xsl:variable>
      <xsl:attribute name="Row">
         <xsl:value-of select="position() + $rownumber + 2"/>
      </xsl:attribute>
       <gmr:Content>
        <xsl:apply-templates/>
       </gmr:Content>
     </gmr:Cell>
</xsl:template>

3.  The output is like this.  In the Excel spreadsheet, the data cells start
from row 27 to 31 in column B.
1
2
3
4
5

4.  What I need to do next is to get the value of the last cell's Row
attribute and to position the cells below it.  For example, I want to add
Comments in the second cell below the last cell which is 5 in this case.
1
2
3
4
5

Comments:

5.  I tried the following:
<xsl:variable name="rownumber"><xsl:number level="any"
count="productId"/></xsl:variable>
      <gmr:Cell Col="0"  Row="27" ValueType="60">
      <xsl:attribute name="Row">
         <xsl:value-of select="28 + $rownumber"/>
      </xsl:attribute>
       Comments
      </gmr:Cell>

The output is :
1
2
3
4
5
Comments
Comments

This is not what I want.  I need to position similar cells like Comments
below the productId cells.  When I try to use the xsl:number to count to get
the total number of cells, it will produce the output of text.

I hope you can shed some light on what I did wrong.  Please let me know if I
haven't made myself clearer.

THANKS for your time!!!!

Charlene

-----Original Message-----
From: Mike Brown [mailto:mike(_at_)skew(_dot_)org]
Sent: Tuesday, June 17, 2003 7:36 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] xsl:number problem


Yan, Charlene wrote:
Maybe my question was not clear enough.  I declared a variable that
contains
the number of productId in the node list.  When I set the Row attribute
equal
to the number, cell and cells after it will do a loop of all the different
productIds.  This part is working perfectly.  But I want to get the total
number of productId to position my next cell's position.  Somehow
$rownumber
is only 1 even though the cells loop several times.  How can I do that?  I
hope I have made myself clearer this time.  Thanks so much for any help!

You're speaking of cell positions and such, but you have not provided an
example of the output you intend to produce. It is hard for people to advise
you on a good solution under these circumstances. It is possible that the
solution doesn't involve the exact procedure that you're describing above...

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>