xsl-list
[Top] [All Lists]

RE: syntax for passing variable into XPath statement

2004-08-06 10:37:23
You haven't shown us the variable declaration, but I suspect it is not a
number. Perhaps it is a result tree fragment. It would still look like a
number when you print it. Perhaps you declared it as

<xsl:variable name="n"><xsl:value-of select="3"/></xsl:variable>

(I'm doing a Jeni here, trying to debug code you haven't shown me: but the
above is a very common error.)

Either declare it in a way that makes it a number, e.g.

<xsl:variable name="n" select="3"/>

or convert it to a number at the point where it is used in a numeric
predicate

/a/b/c/d[number($n)]

The problem is that if you write a/b[$n] where $n isn't a number, it's
converted to a boolean, not to a number. Converting a result tree fragment
to a boolean always gives true, which means the predicate has no effect.

Michael Kay

-----Original Message-----
From: Esther_Strom(_at_)hmco(_dot_)com 
[mailto:Esther_Strom(_at_)hmco(_dot_)com] 
Sent: 06 August 2004 18:21
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] syntax for passing variable into XPath statement





I'm pretty new at this, and haven't been able to find a 
sample of what I'm
trying to do. I have a variable set up, and it is getting set 
correctly -
I've got an fo:inline printing out the value of the variable 
at each point
in the code. But I need to pass that variable into an XPath 
statement as a
predicate (the variable is a number), and although it isn't 
causing any
errors the way it is now, I don't think it's getting set. 
Could someone
take a look and see if I'm doing something wrong?

* I know the variable navNum is set correctly because of the value-of
statement inside the inline *
<xsl:apply-templates select="Zone2"/>z2 is at navNum<fo:inline
font-weight="bold"><xsl:value-of select="$navNum"/></fo:inline>

* now I need to pass that variable number into here to get the correct
NavigationDivision element. If I hard-code a number in, the statement
provides the correct output *
<xsl:value-of
select="//MLPublication/NavigationDivision[$navNum]/Activity/T
itle[1]"/>

I know in cases where you're passing a variable into a parameter you
enclose it in curly braces, but doing that causes my parser 
to throw an
error.
|------------------------------|
| E S T H E R  S T R O M, CLPP |
| Notes Application Development|
| McDougal Littell             |
| 909 Davis Street             |
| Evanston, IL 60201 USA       |
| w: 847.424.3209              |
| e: esther_strom(_at_)hmco(_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>
--+--





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