On Sat, Mar 23, 2013 at 12:09:25PM +0000, Alex Bligh wrote:
> Daniel,
> 
> On 23 Mar 2013, at 11:52, Daniel Veillard wrote:
> 
> >   ctxt->node = node;

actually it's good to set the doc too at that point before reusing
the context in the loop.

      ctxt->doc = doc;

> >   res = xmlXPathEval("./foo..", ctxt);
> >   ...
> > 
> > of course the subtree query will have to be relative, i.e. not
> > starting by /
> 
> Ah! The point I'd missed is that you can set ctxt->node. I couldn't
> see an API call to set the current node. Could I suggest this might
> be a useful function (if only an inline) so it gets into the docs?

  I though I had added a macro but searched for it an no it's not there.
In the python bindings there is an extra function called

libxml2mod.xmlXPathSetContextNode()

we could do something along this line in C or another way could be
to add a new function:

xmlXPathObjectPtr
xmlXPathNodeEval(xmlNodePtr node, const xmlChar *str, xmlXPathContextPtr ctx)

 as a simple wrapper around xmlXPathEval

Daniel
-- 
Daniel Veillard      | Open Source and Standards, Red Hat
veill...@redhat.com  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | virtualization library  http://libvirt.org/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to