Good point,

I've always understood the "root" to be the single node that is set as the
context. Maybe I'm wrong and your comparison to a file system make senses.
However, if you take the file system example and map a directory to a drive
then you have a new root that it isn't really a true root in the real
physical sense - this is similar to setting a new context in Jaxen.
One final point, if XPath should be able to handle document fragments (which
I think it should) then there is not always a Document root in a fragement
so "/" would be invalid.
Eddie
----- Original Message -----
From: "James Strachan" <[EMAIL PROTECTED]>
To: "Eddie" <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>
Sent: Tuesday, November 20, 2001 11:12 AM
Subject: Re: [Jaxen] Paths beginning with / should start from document?


> Hi Eddie
>
> Thanks for that. I guess thats my question; should the 'root' be the
context
> node on which the XPath expression evaluates or should 'root' always be
the
> document? (Lets not worry about document fragments for this discussion)
>
> I always thought it should be the document, otherwise the use of "/" at
the
> start of an expression adds no extra value. Lets take an example.
>
> <foo c="123">
>     <bar>
>         <x>
>             <y>hello</y>
>         </x>
>     </bar>
> </foo>
>
> Lets say we get access to the <bar> element. (Using dom4j code for a
> second).
>
>     Node bar = document.selectSingleNode( "/foo/bar" );
>
> Now typically if I wanted to navigate relative to the <bar> element I'd
just
> use a relative XPath expression which does not start with "/".
>
>     Node y = bar.selectSingleNode( "x/y" );
>
> There's no need for me to start the expression with "/" since the XPath
> expression will start from <bar> anyway as its relative.
>
> However if I wanted to get access to the c attribute, I could do
>
>     Node c = bar.selectSingleNode( "/@c" );
>
> Couldn't I?
>
> i.e. the addition of "/" to the front of the XPath expression means use
the
> document as the root, not the node I happen to be evaluating the
expression
> on, which is <bar>. If the "/" means use the evaluation context as the
root
> then there is no difference between "/@c" and "@c" which would seem pretty
> pointless to me.
>
> Is my understanding correct here? There does seem to be a bit of confusion
> on this topic.
>
> James
> ----- Original Message -----
> From: "Eddie" <[EMAIL PROTECTED]>
> To: "James Strachan" <[EMAIL PROTECTED]>
> Sent: Tuesday, November 20, 2001 10:02 AM
> Subject: Re: [Jaxen] Paths beginning with / should start from document?
>
>
> > James,
> > if an XPath starts with a "/" then it is an absolute path and is taken
as
> > meaning the root node. The "root" is usually the Document node but
doesn't
> > necessarily need to be. It could be just the root of a particular
branch.
> > The root is defined by the context that you set before evaluation using
> the
> > method Context.setNodeSet(List nodeSet). I'm not sure what is supposed
to
> > happen if you have no root but several top level nodes. You probably get
> an
> > exception or an empty result set.
> > Hope this helps
> > Eddie
> >
> >
> > ----- Original Message -----
> > From: "James Strachan" <[EMAIL PROTECTED]>
> > To: "Jaxen-Interest" <[EMAIL PROTECTED]>
> > Sent: Tuesday, November 20, 2001 9:26 AM
> > Subject: [Jaxen] Paths beginning with / should start from document?
> >
> >
> > > Just a quick clarifcation that I wanted to double check with the list.
> Any
> > > XPath expression that starts with "/" should always start from the
> > document
> > > of the node on which the XPath is evaluated, shouldn't it?
> > >
> > > i.e. the behaviour is like a file system where whatever directory
(node)
> > you
> > > evaluate a path expression, anything starting with "/" starts from the
> > root
> > > directory (the document).
> > >
> > > This is true isn't it?
> > >
> > > James
> > >
> > >
> > > _________________________________________________________
> > > Do You Yahoo!?
> > > Get your free @yahoo.com address at http://mail.yahoo.com
> > >
> > >
> > > _______________________________________________
> > > Jaxen-interest mailing list
> > > [EMAIL PROTECTED]
> > > https://lists.sourceforge.net/lists/listinfo/jaxen-interest
>
>
> _________________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.com address at http://mail.yahoo.com
>


_______________________________________________
Jaxen-interest mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jaxen-interest

Reply via email to