Peculiar variable assignment

Subject: Peculiar variable assignment
From: Jeni Tennison <Jeni.Tennison@xxxxxxxxxxxxxxxx>
Date: Tue, 23 May 2000 12:24:23 +0100
Hi,

In answering Cheun Ngen CHONG's question about comparing dates, I ran into
a couple of problems that have left me puzzled (other one is in separate
email).

I had to convert a date in a string in the form "23 May 2000" into a number
twice, once for a parameter passed into the stylesheet, and once for the
value of a BESTBEFORE element.  Part of that involved converting the month
name into a month number.  In doing this, I came across a discrepancy that
probably has something to do with the differences between the values of
node-lists and strings, but that I really don't understand, viz:

<xsl:variable name="bbString" select="BESTBEFORE" />
<xsl:variable name="bbMonth"
  select="document('')//foo:month[@name =
    substring-before(substring-after($bbString, ' '), ' ')]/@num" />

gives $bbMonth = "05" whereas:

<xsl:variable name="bbMonth"
  select="document('')//foo:month[@name =
    substring-before(substring-after(BESTBEFORE, ' '), ' ')]/@num" />

gives $bbMonth = "", as does:

<xsl:variable name="bbMonth"
  select="document('')//foo:month[@name =
    substring-before(substring-after(string(BESTBEFORE), ' '), ' ')]/@num" />

Please could someone explain this discrepancy to me.  I'm using Instant
SAXON v.5.3.1, if that makes any difference.

Thanks,

Jeni

Dr Jeni Tennison
Epistemics Ltd, Strelley Hall, Nottingham, NG8 6PE
Telephone 0115 9061301 ? Fax 0115 9061304 ? Email
jeni.tennison@xxxxxxxxxxxxxxxx



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


Current Thread