At 05:17 PM 11/7/2002, you wrote:
I am trying to make a variable that is either true or false, and
later doing an <xsl:if> operation with the condition being not'd, but
for some reason xalan 2.4.D1 is saying that a not("variable assigned
as false") is not true.
Is this a bug or am I doing something wrong?
Test case:
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml"/>
<xsl:template match="/">
<!-- make a false variable entitled 'false-variable' -->
<xsl:variable name="false-variable">
<xsl:value-of select="false()"/>
</xsl:variable>
Stop here. This is where you are confused. If you were to instead say
<xsl:variable name="false-variable" select="false()"/>, it would work
exactly as you would expect it to. The problem is that you are creating a
result-tree-fragment consisting of the text node "false". That is what
happens when you say <xsl:value-of select="false()" />.
Later, you test if the variable has any content (when
test="$false-variable"), which it does: the string "false".
Solution: Use the 'select' attribute of xsl:variable when you want a
boolean result, not a string result.
Greg Faron
Integre Technical Publishing Co.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list