You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by "David Marston (JIRA)" <xa...@xml.apache.org> on 2007/04/17 17:06:15 UTC

[jira] Commented: (XALANJ-2379) Empty node text comparisons failing

    [ https://issues.apache.org/jira/browse/XALANJ-2379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12489422 ] 

David Marston commented on XALANJ-2379:
---------------------------------------

I believe that the current behavior is correct. The element
<param></param>
with no characters between the start and end tags, has no children.
A test like count(text()) would return zero. This is a more accurate view of the situation than
string-length(text()) returning zero, because the string-length behavior when given an empty node-set depends on the XPath spec defining that behavior as an exception. By contrast, the count() function is intended to report the number of members of a node-set.

As for the compare between an empty node-set and a null string, see part 3.4 of the XPath 1.0 spec, in particular the 5th paragraph. The complaint is about comparing a node-set, text(), to a string, ''. But there is no node in the node-set that has that string value because there is no node in the node-set. In other words, when one comparand is an empty node-set, the result is always false.

> Empty node text comparisons failing
> -----------------------------------
>
>                 Key: XALANJ-2379
>                 URL: https://issues.apache.org/jira/browse/XALANJ-2379
>             Project: XalanJ2
>          Issue Type: Bug
>    Affects Versions: 2.7
>         Environment: Windows XP SP2, Eclipse 3.2.2 (build M20070212-1330)
>            Reporter: Joe
>            Priority: Critical
>         Attachments: test.xml, test.xsl, test_output.xml
>
>
> When a text comparison on an empty node is performed, it never returns true.  For example, if I were to use this variable:
>     <xsl:variable name="testcase1" select="text()=''"/>
> this will always return false.
> Yet, if I do:
>     <xsl:variable name="testcase1" select="string-length(text())=0"/>
> This returns the correct result.
> I will attach a test case to this bug report.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-dev-help@xml.apache.org