This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Evaluating parameter in <xsl:when> vs evaluating parameter in <xsl:sort>.
- From: Jeni Tennison <jeni at jenitennison dot com>
- To: roelf at exinet dot co dot za (Roelf Jansen)
- Cc: xsl-list at lists dot mulberrytech dot com
- Date: Wed, 24 Jul 2002 14:12:07 +0100
- Subject: Re: [xsl] Evaluating parameter in <xsl:when> vs evaluating parameter in <xsl:sort>.
- Organization: Jeni Tennison Consulting Ltd
- References: <3D3E9756.7CD2D238@exinet.co.za>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Roelf,
> In the following snippet the " xalan:evaluate($sortParameter) " gets
> the correct value when placed in the <xsl:sort> tag but not does not
> seem to do so when placed in the <xsl:when> tag. Is there any reason
> why the evaluation in the <xsl:when> tag is not working in my code?
You're doing:
> <xsl:when test="xalan:evaluate($sortParameter) = 'name'" >
> <xsl:for-each select="query">
> <xsl:sort select="xalan:evaluate($sortParameter)"
> order="ascending"/>
In the test attribute of xsl:when, the context node, against which the
$sortParameter expression is evaluated, is the current node in the
template, whatever that is.
In the select attribute of xsl:sort, the context node is the query
element that you're sorting (selected by the xsl:for-each).
So my guess would be that the reason that it's not working is that the
context node is different in the two cases, and that doing something
like:
<xsl:when test="xalan:evaluate(concat('query/', $sortParameter)) =
'name'">
...
</xsl:when>
would work.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list