OK. I see..
Thank you all for the quick responses.

Regards,

Polat



On Mon, Nov 9, 2009 at 7:16 PM, Stefan Behnel <stefan_ml@behnel.de> wrote:

Polat Tuzla, 09.11.2009 15:17:
> Thank you for your response.
> I looked at the other results, and they did not seem to obey the xpath axis
> either.
> By using ancestor-or-self, I'm expecting an output like this:
>
> <a>
>   <b>
>     <c/>
>   </b>
> </a>
>
>
> But the other results that are returned to me are:
>
> In [311]:  print etree.tostring(root.xpath("/a/b/c/ancestor-or-self::*")[1],
> pretty_print=True)
>    .....:
> <b>
>   <c/>
>   <x>
>     <z/>
>   </x>
> </b>

An XPath query will not construct a new tree for you. What you see here is
the result of serialising the second node in the result set, including its
subtree *as defined in the document*. This has nothing to do with the query
you ran *before* the serialisation, and which correctly returned the
matching nodes in a list.

Stefan