[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [xml] Setting a context from a patricular node



(Top-posting fixed.)
eric_w wrote:

> James Dennett wrote:
> >
> >> -----Original Message-----
> >> From: xml-bounces gnome org [mailto:xml-bounces gnome org] On
Behalf
> > Of
> >> Abhishek Jain
> >> Sent: Wednesday, November 07, 2007 3:22 PM
> >> To: xml gnome org
> >> Subject: [xml] Setting a context from a patricular node
> >>
> >> Hi,
> >>
> >> I want to set the xmlXPathContext from a particular node say
> > xmlNodePtr
> >> node1 in a xmlDocPtr doc so that my XPath is evaluated in the
subtree
> > of
> >> node1.
> >>
> >> Please let me know how can i do that.
> >
> > While I'd be more comfortable if I could find this documented, so
far as
> > I can tell the recommended approach is to set the "node" field of
the
> > xmlXPathContext, i.e., context->node = node1; in your case.
> >
> > I'd also note that some library calls will change the node, so you
> > should reset it before reusing a context.
> >
> > -- James
> 
> Doesn't this sequence
> 
>      doc = xmlTextReaderCurrentDoc( reader);
>      pathContext = xmlXPathNewContext( doc);
> 
> accomplish the same thing? 

I don't see how it could, given that it does not even mention
a "current node".  But I could be missing something.  Could
you show how you'd implement code to evaluate an XPath relative
to a specified node within a document?

> Or are you suggesting that is is sufficient to
> just set the xmlNodePtr
> in the path context structure?

I don't completely understand your question.  Obviously it is
Necessary to initialize the context using xmlXPathNewContext;
after that, I believe the context node can be changed within
the context, and I don't know of a function call to do so,
although some function calls change the current node as a
side-effect.

-- James



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]