lxml.etree, namespaces and element insertion

Stefan Behnel stefan_ml at behnel.de
Thu Jan 27 14:33:46 EST 2011


hein, 27.01.2011 19:16:
> The other day i was processing an xml tree using lxml.etree. That tree
> contained a namespace. During that processing i inserted an element.
> Later on
> i tried to find that element using xpath. And to my suprise that
> element was
> not found! Maybe my suprise is just the result of my marginal
> knowledge about xml namespaces.
>
> After some examination i found out that the reason for not finding the
> element
> was that i did not supply a namespace when inserting the element.
> [...]
> I have two questions on this:
>
>   - Is what i am seeing expected behavior?

Yes. It's a common problem for new users, though.


>   - How am i supposed to detect a missing namespace, if there are no
> differences
>     in the serialized representation? (That's what i initially used to
> debug the problem.)

This is a known problem of XML namespaces, which were only designed as an 
add-on to XML after the fact. The only advice I can give: be careful with 
the default namespace.

Stefan




More information about the Python-list mailing list