xsl-list
[Top] [All Lists]

RE: [xsl] 1 + 1 = 11

2006-04-18 10:41:36
At 01:31 PM 4/18/2006, it was written:
I'm trying to remember, but isn't "+" used for concatenation?  So, yes,
1+1=11.

Nope, it isn't, not in XSLT (or more precisely, XPath).

I think the problem is the <xsl:otherwise>0</xsl:otherwise>. My guess is that the test is being run on a table with two rows: the first has an index of '1' assigned, so '1' is appended. The next (position()=2) hits the otherwise so '0' is appended, resulting in the string '10'. XPath coerces this string to 10, add 1 to it and get 11.

If you had a table with three rows, you'd get 101, four rows would get 1001, etc.

If this is correct, just change the <xsl:choose> to an <xsl:if> to get rid of the otherwise clause. It shouldn't be there anyway.

Cheers,
Wendell

> -----Original Message-----
> From: Eric White [mailto:eric(_dot_)white(_at_)ionpipe(_dot_)com]
> Sent: Tuesday, April 18, 2006 1:19 PM
> To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
> Subject: [xsl] 1 + 1 = 11
>
> What am I missing?  I define a parameter, get the highest
> existing row number and I want to add a value to it -- so I
> can add the next table row with a new index.  I get the index
> value correctly, but when I add one (1) to it, I get  the
> string "11", rather than the number 2. Note that I
> specifically set the param to a number via the number() function.
> I've also tried using the number() function inside the select
> attribute of the apply-templates element, trying to coerce
> the result, but to no avail.
>
> <xsl:template match="ntpServerTable">
>    <xsl:param name="rowindex">
>       <xsl:for-each select="ntpServerTableRow">
>          <xsl:sort select="ntpServerTableRowIndex" data-type="number"
> order="descending" />
>         <xsl:choose>
>            <xsl:when test="position() = 1">
>              <xsl:value-of select="number(ntpServerTableRowIndex)"/>
>           </xsl:when>
>           <xsl:otherwise>0</xsl:otherwise>
>        </xsl:choose>
>      </xsl:for-each>
>    </xsl:param>
>    <xsl:apply-templates select="ntpServerTableRow"/>
>    <ntpServerTableRowIndex><xsl:value-of
> select="$rowindex+1"/></ntpServerTableRowIndex>
>
>
> --~------------------------------------------------------------------
> XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
> or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
> --~--
>

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


======================================================================
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
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

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