Binary operators behaviour involving node-sets is incorrect
-----------------------------------------------------------

                 Key: JXPATH-93
                 URL: https://issues.apache.org/jira/browse/JXPATH-93
             Project: Commons JXPath
          Issue Type: Bug
    Affects Versions: 1.2 Final
         Environment: 1.2, SVN version
            Reporter: Sergey Vladimirov


According to XPath specification:
"If both objects to be compared are node-sets, then the comparison will be true 
if and only if there is a node in the first node-set and a node in the second 
node-set such that the result of performing the comparison on the string-values 
of the two nodes is true. If one object to be compared is a node-set and the 
other is a number, then the comparison will be true if and only if there is a 
node in the node-set such that the result of performing the comparison on the 
number to be compared and on the result of converting the string-value of that 
node to a number using the number function is true."

But following example illustrates, that this is not a JXPath behaviour:


        JXPathContext pathContext = JXPathContext
                .newContext(DocumentBuilderFactory.newInstance()
                        .newDocumentBuilder().parse(
                                new InputSource(new StringReader(
                                        "<?xml version=\"1.0\" 
encoding=\"UTF-8\"?>\r\n"
                                                + "<doc/>"))));
        Boolean result = (Boolean) pathContext.getValue("2.0 > child1",
                Boolean.class);
        assertFalse(result.booleanValue());

"child1" is not found - right operand node set is empty, but result is TRUE, 
instead of FALSE.

Please, check greaterThan(), lesserThan(), etc methods of 
org.apache.xpath.objects.XObject for possible solution :)

-- 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to