[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] evaluate() error variable has not been declared??


Subject: [xsl] evaluate() error variable has not been declared??
From: "davidpbrown" <lists@xxxxxxxxxxxxxxxxx>
Date: Mon, 10 May 2004 20:17:26 +0100

<newbie/>
I had expected saxon:evaluate() to be simple but it has me stumped.

Why does the following test give error suggesting "Variable $test has not
been declared", when it obviously has?

<?xml version="1.0" encoding="utf-8"?>
<test>
<input>result</input>
<result>expected output!</result>
</test>

<?xml version="1.0"?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0" xmlns:saxon="http://saxon.sf.net/"
extension-element-prefixes="saxon">
<xsl:output method="xml" indent="no" encoding="utf-8"/>

<xsl:template match="/">
 <xsl:variable name="test" select="/test/input/text()"/>
 <xsl:value-of select="$test"/>
 <xsl:if test="$test != ''">
  <xsl:variable name="output"
select="saxon:evaluate('/test/$test/text()')"/>
  <xsl:value-of select="$output"/>
  <trace/>
 </xsl:if>
</xsl:template>

<xsl:template match="text()|@*"/>
</xsl:transform>

Without the <if>, $test has been defined and is output ok.

Regards
davidpbrown


Current Thread