[xsl] Re: Re: How to pass search path as variable and get back node list.

Subject: [xsl] Re: Re: How to pass search path as variable and get back node list.
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Wed, 27 Mar 2002 23:26:58 -0800 (PST)
"J.Pietschmann" <j3322ptm at yahoo dot de> wrote:

> Andrew Kerns wrote:
> > <xsl:param name="DATA_REQUEST_NAME"/>  
> > 
> > <xsl:variable name="ftype_search"
> > select="concat('//JOB_REQUEST/DATA_REQUEST
> [@NAME=',$DATA_REQUEST_NAME,']/FILE_TYPE')"/>

> You have assigned a string to the variable $ftype_search,
> and it will stay a string, even if it looks like an XPath
> expression. In most other languages, if you do
>    a="1 + 1";
>    b=a;
> you usually don't expect that b is 2 afterwards.
> 
> Your problem is much simpler to solve, try this:
>    <xsl:variable name="ftype_search"
>       select="//JOB_REQUEST/DATA_REQUEST
> [@NAME=$DATA_REQUEST_NAME]/FILE_TYPE"/>
> 
> If you really want to pass more complicated expressions
> as parameter values, like "1 + 1" or "/DATA_REQUEST
> [@NAME=$DATA_REQUEST_NAME]",
> search the manual for your processor for an evaluate()
> function

Instead of looking for a vendor:evaluate() function, a better approach
is to use DOM and change a skeleton stylesheet before the
transformation is applied, by setting the value of the "select"
attribute of a certain global variable to the string XPath expression
that is necessary to evaluate.

This is basically what the XPath Visualizer does all the time.

Cheers,
Dimitre Novatchev.




__________________________________________________
Do You Yahoo!?
Yahoo! Movies - coverage of the 74th Academy Awards®
http://movies.yahoo.com/

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


Current Thread