xsl-list
[Top] [All Lists]

Re: Setting variable based on passed in parameter

2004-11-30 09:24:44

On Tue, 30 Nov 2004 09:12:41 -0700, "Matthew Hailstone"
<mhailstone(_at_)novell(_dot_)com> 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(_at_)fastmail(_dot_)co(_dot_)uk


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--