You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by bu...@apache.org on 2002/06/03 14:30:35 UTC

DO NOT REPLY [Bug 9575] New: - count() returns wrong value

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9575>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9575

count() returns wrong value

           Summary: count() returns wrong value
           Product: XalanJ2
           Version: CurrentCVS
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: org.apache.xpath
        AssignedTo: xalan-dev@xml.apache.org
        ReportedBy: geuer-pollmann@nue.et-inf.uni-siegen.de


Given the code below, I create an attribute in an element and evaluate the 
XPath 

"count(ancestor-or-self::node())"

on that attribute. The ancestor-or-self axis should contain three nodes: The 
Attribute itself, it's owner element (which is also the document element) and 
the document node. But instead of 3.0, the evaluate call returns 4.0.

Regards,
Christian

--------------------

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
Element root = doc.createElement("root");
doc.appendChild(root);
Attr attr = doc.createAttribute("attr");
attr.setValue("val");
root.setAttributeNode(attr);

CachedXPathAPI xpathAPI = new CachedXPathAPI();
XObject includeInResult =
   xpathAPI.eval(attr, "count(ancestor-or-self::node())");
double val = includeInResult.num();

System.out.println("count(ancestor-of-self::node()) evaluates to " + val);