The first argument is the opaque document instance that contains
the Element. The second argument is a lightweight Element proxy
implementation that is only valid during the lookup. Do not try
to keep a reference to it. Once the lookup is done, the proxy
will be invalid.

Also, you cannot wrap such a read-only Element in an ElementTree,
and you must take care not to keep a reference to them outside of
the lookup() method.

Note that the API of the Element objects is not complete. It is
purely read-only and does not support all features of the normal
lxml.etree API (such as XPath, extended slicing or some
iteration methods).