xsl-list
[Top] [All Lists]

RE: Problem setting part of xpath as parameter

2004-06-01 00:32:40

Im having a problem with a parameter set from java to a xsl document.
It used to work. But moving from version Xalan Java 1 to 
Xalan Java 2  it 
doesnt anymore.


The only thing that surprises me is that this could ever have worked.


I have the following Java testcode, that makes the transformation:

          trans.setParameter("xpath", "Root[1]/Niv0[1]/Niv1[1]/");

in the xsl file I have the following:
.
.
.
<xsl:param  name="xpath" />
.
.
<xsl:for-each 
select="$xpath/child::node()[(_at_)Visible='true'].......more conditions...

Somehow it cant put the value of the xpath parameter in the select 
statement and interpret it as a nodelist.

Well, you haven't actually told it that the string you supplied is an XPath
expression and you would like it to be evaluated and that when you say
$xpath you don't want the string, but the node-set that results from this
XPath evaluation. You can't really expect the processor to guess that this
is what you wanted! If you supply a string as a parameter, you should use it
in the stylesheet as a string.

Xalan, I believe, implements the EXSLT dyn:evaluate() extension that allows
you to evaluate an XPath expression supplied as a string, returning the
node-set containing the selected nodes. Alternatively, you could control
this evaluation from the Java application and supply a set of nodes as the
parameter value.


Michael Kay




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