Discussion:
JXPath: Does not understand ancestor:: and descendant::?
Carsten Schlipf
2007-08-15 19:25:37 UTC
Permalink
Hello,

on the JXPath user's guide I have read that the axes "parent::" and
"ancestor::" may be used. However in my code I get JXPathExceptions:

JXPathContext context = JXPathContext.newContext(object);
context.getValue("ancestor::");

The call to getValue(String) throws the JXPathException with the
following message:

Invalid XPath: 'ancestor::'. Syntax error after: 'a'.

A similar exception is thrown for 'descendant::' and 'parent::'. Am I
missing something? Do I have to set a special mode or register the
DescendantContext, AncestorContext and ParentContext classes as
functions somehow? I tried the later but didn't succeed.

Thank you very much for help!

Carsten
Sergey Vladimirov
2007-08-15 20:10:25 UTC
Permalink
Carsten,

As for every axis, node test should be specified:
- "parent::*"
- "ancestor::*"
- "descendant::somenodename"

Hope this'll help,
Sergey
Post by Carsten Schlipf
Hello,
on the JXPath user's guide I have read that the axes "parent::" and
JXPathContext context = JXPathContext.newContext(object);
context.getValue("ancestor::");
The call to getValue(String) throws the JXPathException with the
Invalid XPath: 'ancestor::'. Syntax error after: 'a'.
A similar exception is thrown for 'descendant::' and 'parent::'. Am I
missing something? Do I have to set a special mode or register the
DescendantContext, AncestorContext and ParentContext classes as
functions somehow? I tried the later but didn't succeed.
Thank you very much for help!
Carsten
---------------------------------------------------------------------
--
Sergey Vladimirov
Carsten Schlipf
2007-08-16 07:48:41 UTC
Permalink
Thank you very much, Sergey.

I was just wondering, since it worked on
http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm.

Regards,
Carsten
Post by Sergey Vladimirov
Carsten,
- "parent::*"
- "ancestor::*"
- "descendant::somenodename"
Hope this'll help,
Sergey
Post by Carsten Schlipf
Hello,
on the JXPath user's guide I have read that the axes "parent::" and
JXPathContext context = JXPathContext.newContext(object);
context.getValue("ancestor::");
The call to getValue(String) throws the JXPathException with the
Invalid XPath: 'ancestor::'. Syntax error after: 'a'.
A similar exception is thrown for 'descendant::' and 'parent::'. Am I
missing something? Do I have to set a special mode or register the
DescendantContext, AncestorContext and ParentContext classes as
functions somehow? I tried the later but didn't succeed.
Thank you very much for help!
Carsten
---------------------------------------------------------------------
Loading...