[lxml-dev] Serialization with namespaces

Stefan Behnel stefan_ml at behnel.de
Wed Sep 12 12:47:30 CEST 2007


Stefan Behnel wrote:
> Anders Bruun Olsen wrote:
>> Now the problem occurs when I try to serialize. When I serialize the
>> root, everything looks fine:
>>
>>    >>> etree.tostring(root, pretty_print=True)
>>    '<topicMap xmlns="http://www.topicmaps.org/xtm/1.0/"
>> xmlns:xlink="http://www.w3.org/1999/xlink" id="personnavnereg1">
>>    ...
>>
>> The XML Namespace is applied as it should. However on the topic-element
>> that I found using XPath no XML Namespace is output:
>>
>>    >>> etree.tostring(elem, pretty_print=True)
>>    '<topic id="abeleHenriksdatter">\n\t\t<instanceOf>\n\t\t\t<topicRef
>>   ...
>>
>> Even though the nsmap attribute is set correctly:
>>
>>    >>> elem.nsmap
>>    {None: 'http://www.topicmaps.org/xtm/1.0/', 'xlink':
>> 'http://www.w3.org/1999/xlink'}
> 
> Hmm, I actually thought these problems were gone with 1.3, but I can reproduce
> this with the current trunk.

Ok, so the problem here is libxml2. It serialises only the namespaces that are
defined on the node itself, not all those that are defined in the node's context.

I'll try to work around it.

Stefan


More information about the lxml-dev mailing list