[ 
http://issues.apache.org/jira/browse/XALANJ-2319?page=comments#action_12445770 
] 
            
Brian Minchau commented on XALANJ-2319:
---------------------------------------

Igor,
I reproduced your problem with the latest development code, exactly as you 
described.

I'm a little suspicious about your XPath object, you you add this to your code 
after you get your
XPath object:
        System.out.println("Class "+ xpath.getClass().getName());

What class does it print out for you?

> Descendant axis sometimes includes the context node
> ---------------------------------------------------
>
>                 Key: XALANJ-2319
>                 URL: http://issues.apache.org/jira/browse/XALANJ-2319
>             Project: XalanJ2
>          Issue Type: Bug
>          Components: parse-or-compile
>    Affects Versions: 2.7
>            Reporter: Igor Peshansky
>         Assigned To: Brian Minchau
>
> The following code:
> import javax.xml.parsers.DocumentBuilderFactory;
> import javax.xml.xpath.XPath;
> import javax.xml.xpath.XPathConstants;
> import javax.xml.xpath.XPathFactory;
> import org.w3c.dom.DOMImplementation;
> import org.w3c.dom.Document;
> import org.w3c.dom.Element;
> public class Y {
>       public static void main(String[] stringArr) throws Exception {
>               DOMImplementation domImpl = 
> DocumentBuilderFactory.newInstance().newDocumentBuilder().getDOMImplementation();
>               Document document = domImpl.createDocument(null, "foo", null);
>               Element element = document.getDocumentElement();
>               element.appendChild(document.createElement("bar"));
>               XPath xpath = XPathFactory.newInstance().newXPath();
>               String result = (String) 
> xpath.evaluate("name(./descendant::*)", element, XPathConstants.STRING);
>               System.out.println(result);
>       }
> }
> prints "foo", whereas it should have printed "bar".  Changing the XPath 
> expression from "name(./descendant::*)" to 
> "name(self::node()/./descendant::*)" makes Xalan produce the correct result, 
> but "name(self::node()/descendant::*)" still exhibits the incorrect behavior.
> A bit of debugging shows that when DescendantIterator is created, the 
> constructor sets the axis to DESCENDANTORSELF, because the first step is a 
> FROM_SELF (even though the subsequent steps are not supposed to return the 
> self node).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to