And the other option is to use an XSLT 2.0 processor which supports such operations on result tree fragments...
On Sunday 17 July 2005 12:50 pm, [EMAIL PROTECTED] wrote: > > The main reason why I want to do 'loop rolling' here is that I plan to > > have a couple of different templates that would make use of this > > construct with all the same global variable. If I want to make some > > (consistent) changes in the parameter values of the template calls, I > > only need to make the required changes with the global variable, instead > > > > of querying hundreds of lines of code. > > > > My questions here are > > - is 'loop rolling' a legal concept with XSLT? > > - is the reaction of Xalan (The expression does not evaluate to a > > node-set.) a bug - or a feature? > > Whenever you use xsl:variable with content, you are creating a result tree > fragment (RTF). In XSLT 1.0, the only thing you can do with an RTF is > copy it to the result tree, or use it like a string. In your case, you > are trying to treat it like a node-set, which is explicitly forbidden: > > http://www.w3.org/TR/xslt#section-Result-Tree-Fragments > > There are two ways around this. You can avoid use constructing new things > by using the select attribute of xsl:variable. This also has the > advantage of being more efficient, since you are not creating new nodes. > The other is you can use the EXSLT node-set function to "convert" the RTF > to a node-set: > > http://exslt.org/exsl/functions/node-set/index.html > > both the Java and C++ processors support this function. > > You can consult the XSL FAQ for more information: > > http://www.dpawson.co.uk/xsl/index.html > > Also, the Mulberry XSL list is by far the best source of information and > insight into the sorts of issues: > > http://www.mulberrytech.com/xsl/xsl-list/index.html > > Dave > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
