[ 
https://issues.apache.org/jira/browse/JXPATH-99?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matt Benson resolved JXPATH-99.
-------------------------------

    Resolution: Invalid

The problem here is that the Neko parser you are using specifies a particular 
Xerces HTML document implementation that converts all element names to upper 
case.  Thus in your example you should have been searching for //[EMAIL 
PROTECTED]'q'] .  As for your followup additional method to search by attribute 
only that seems to be equivalent to e.g. //[EMAIL PROTECTED]'q'] .

-Matt

> JXPath works incorrectly with CyberNeko HtmlParser
> --------------------------------------------------
>
>                 Key: JXPATH-99
>                 URL: https://issues.apache.org/jira/browse/JXPATH-99
>             Project: Commons JXPath
>          Issue Type: Bug
>    Affects Versions: 1.2 Final
>            Reporter: Vladimir
>
> I don't know exactly where is the bug. I have an idea, that CyberNeko html 
> parser creates some wired w3c DOM representation of html file, and that is 
> the cause. Here is a code sample:
> // ---------------------------
>        // create CyberNeko html parser 
>         DOMParser parser = new DOMParser();
>         // this page does have //[EMAIL PROTECTED]'q'] field
>         parser.parse("http://google.com";);
>         Document doc = parser.getDocument();
>         // JXPATH TEST
>         JXPathContext context = JXPathContext.newContext(doc);
>         List nodes1 = context.selectNodes("//[EMAIL PROTECTED]'q']"); // 
> ERROR IS HERE: call returns nothing, must return 1 node
>         List nodes2 = context.selectNodes("//*"); // returnes 78 nodes
>         System.out.println(nodes1.toString());
>         System.out.println(nodes2.toString());
>         // XPathFactory TEST  ( for comparison )
>         // error, returns nothing
>         Object list1 = 
> XPathFactory.newInstance().newXPath().compile("//[EMAIL 
> PROTECTED]'q']").evaluate(doc, XPathConstants.NODESET);
>         // returns 79 nodes
>         Object list2 = 
> XPathFactory.newInstance().newXPath().compile("//*").evaluate(doc, 
> XPathConstants.NODESET);
>         System.out.println(list1);
>         System.out.println(list2);
> // -----------------------------------
> Is it possible to fix this problem inside JXPath? Or is it only html parser 
> problem?

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

Reply via email to