Subject: Re: Setting variable based on passed in parameter
From: "Richard Lewis" <richardlewis@xxxxxxxxxxxxxx>
Date: Tue, 30 Nov 2004 16:24:44 +0000
|
On Tue, 30 Nov 2004 09:12:41 -0700, "Matthew Hailstone"
<mhailstone@xxxxxxxxxx> said:
> I'm trying to assign a variable a node-set that depends on a parameter
> passed into the stylesheet.
>
> <xsl:param name="nodeValue">something</xsl:param>
> <xsl:param name="valueSearch">false</xsl:param>
> <xsl:variable name="initialResult">
> <xsl:choose>
> <xsl:when test="$valueSearch='false'">
> <xsl:value-of
> select="/one/two[three/four[contains(text(),$nodeValue)]]"/>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of
> select="/one/two[three/four[contains(text(),$nodeValue)]]"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
> <xsl:template match="/">
> <xsl:apply-templates select="$initialResult"/>
> </xsl:template>
> <xsl:template match="/one/two">
> ...
> </xsl:template>
>
>
> I get an error in oXygen saying, "Cannot process a result tree fragment
> as a node-set under XSLT 1.0"
>
EXSLT provides the function exslt:node-set(some-node-set) (in the
namespace xmlns:exslt="http://exslt.org/common", but only if your
processor supports it) which turns a variable into a node set. Its quite
expensive, though.
Richard.
--
Richard Lewis
richardlewis@xxxxxxxxxxxxxx
|