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]
Other format: [Raw text]

Re: Evaluating parameter in <xsl:when> vs evaluating parameter in <xsl:sort>.


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


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