This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Peculiar variable assignment


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@epistemics.co.uk



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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]