Subject: Re: [xsl] Selecting from a node-set using variable path From: "J.Pietschmann" <j3322ptm@xxxxxxxx> Date: Tue, 18 Feb 2003 21:30:42 +0100 |
This works: <xsl:variable name="t1" select="$myNodeSet//a/b/c"/>
This doesn't: <xsl:variable name="t2" select="$myNodeSet/$myPath"/>
Ah, this comes up regularly. It's something like doing String a="1 + 1"; int b=1+a; in Java and expecting this is not only doesn't cause the compiler to barf but that b is 3 afterwards.
How do I filter down my node-set based upon some variable location path?
For simple cases there are pure XPath solutions, however, in your case you'll have to use an extension function to invoke a runtime XPath interpreter, for example <xsl:variable name="myPath">/a/b/c</xsl:variable> <xsl:variable name="t3" select="xx:evaluate(concat('$myNodeset/',$myPath))"/> The inner concat evaluates to the string $myNodeset//a/b/c which in turn is evaluated as XPath expression.
Um, well, IIRC MSXML does not have exactly such an extension function, but you can use a bit of JScript code to emulate this. The EXSLT project at sourceforge should have such code.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Selecting from a node-set usi, gary fong | Thread | RE: [xsl] Selecting from a node-set, Michael Kay |
Re: [xsl] Re: How can I translate a, Chris Loschen | Date | RE: [xsl] The Perils of Sudden Type, Michael Kay |
Month |