commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Benson <>
Subject Re: [JXPath] Can JXPath help me with processing collection based tree?
Date Fri, 02 Nov 2012 17:18:50 GMT
As Jun suggests, a custom extension function [1] is probably in order
to keep your expressions reasonably (!) short.  Assuming you want to
use JXPath without modifying any of your existing code, I would
recommend trying to write a custom function that makes the call to
retrieve the name.  Then your expression might look like
".[mynode:getName() = 'nodeName1']/.[mynode:getName() = 'nodeName2']"
etc.  ISTR JXPath having a bit of trouble processing a collection as
the root, so you might experiment with making your IMyNodeAggregate be
a property of your root, or even the value of a variable.

Thinking further, you might get some mileage out of doing some custom
interface implementations.  The discussion of maps [2] in the user
guide makes reference to the customization needed to treat any
arbitrary structure similarly to a map, which arguably your
IMyNodeAggregate is.



On Fri, Nov 2, 2012 at 11:59 AM, Jun Ouyang <> wrote:
> Sorry I am on transit right now so i cant give u a full and proper.respond.
> But i think you can create your own jxpath function and invoke it to match
> your need. In this case the function shall check if names are equal?
> On Nov 2, 2012 9:47 AM, "we9" <> wrote:
>> I started to write some methods which process tree structure. The queries
>> are based on XPath. And now, I discovered JXPath. I was reading user-guide,
>> but I didn't find what I want.
>> I must be sure that there is no posibility to do this with JXPath.
>> I have the following interfaces:
>> interface IMyNode
>> interface IMyNodeAggregate<C extends IMyNode> implements Collection<C>,
>> IMyNode
>> I want to pass some root (instance of IMyAggregate) and using XPath
>> notation (eg. /nodeName1//nodeName2/**nodeName3) get proper IMyNode
>> instances. Name of IMyNode is avaliable by calling
>> myNode.someService().getName() so maybe some interface JXPath should be
>> implemented?
>> Please answer me if JXPath can help me?
>> Thank you in advance,
>> Kamil
>> ------------------------------**------------------------------**---------
>> To unsubscribe, e-mail: user-unsubscribe@commons.**<>
>> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message