xsl-list
[Top] [All Lists]

Re: top level params and xsl:attribute magic?

2003-01-21 22:39:24

What I think is the best solution of your problem is to set the 
value of the "select" attribute of a global xsl:param to the 
*string* XPath
expression. You can do this using the selectSingleNode() and then
setAttribute() methods. Then perform the transformation.

I can't do that, I'm not using MSXML.....! I'm using LibXSLT with 
AxKit on Mac OS X.


This is not MSXML-specific. I think the setAttribute() method is a
standard W3C DOM method.

For example, here's how the same technique is implemented in the XPath
Visualizer for Mozilla:

 objStylesheetParam = style.evaluate("/*/*[name()='xsl:param']
                                              [(_at_)name='selectedNodes']",
                                     style, 
                                     null, 
                                     XPathResult.ANY_TYPE, 
                                     null)
                                         .iterateNext();

and further down in the code:

 objStylesheetParam.setAttribute("select", txtQuery);

 var txtResult = source.transformNode(style);


It should be possible to implement this technique for any XSLT
processor, given the specific API it uses. What is necessary is:

1. to be able to invoke a method that evaluates an XPath expression to
return the "xsl:param" element, 

2. then use the setAttribute() method on this element to dynamically
hardwire its value.

3. Only then invoke the xslt transformation.


Anyway, in our discussion about a persistent node id Mike Kay came with
a very good proposal. Using it one will not need any xx:evaluate()
extension function:

http://www.sonicsoftware.com/cgi-bin/dnewsweb/public/dnewsweb?cmd=article&group=xsl-list&item=14175&utag=




=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

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