[Python-de] lxml haengt Namespace an neue Elemente

Andreas Pakulat apaku at gmx.de
Fre Jan 27 01:33:38 CET 2006


On 22.01.06 23:22:58, Andreas Pakulat wrote:
> Hi,
> 
> ich hab hier ein klitzekleines Problem mit lxml. Ich moechte zu einem
> Element (fuer das ich eine eigene Implementierung geschrieben habe via
> Namespaces zugewiesen) ein neues Kind hinzufuegen. Leider schiebt mir
> lxml jedesmal eine NS Deklaration in das neue Kind wenn ich es mit 
> 
> newElem = Element("{temp}elem1")
> 
> erzeuge. Fuer ein alleine stehendes Element waere das ja richtig. Aber
> wenn ich das Element dann in einen bestehenden Baum einhaenge und das
> XML ausgebe hab ich trotzdem noch die ueberfluessigen zusaetzlichen NS
> Deklarationen drin. Insbesondere da lxml sich sowas wie ns0, ns1 usw.
> ausdenkt ist das sehr unschoen.
> 
> Kennt jemand ne Moeglichkeit das abzuschalten? Oder aber eine
> Moeglichkeit wie ich die Ordnung der Kinder eines Knotens aendern kann?

Ich muss das doch nochmal aufwärmen. Jetzt hab ich naemlich doch ein
Problem. 

Ich kann jetzt kein SubElement mehr nehmen, weil ich kein parent dazu
mehr habe. Sprich ich erzeuge aus "irgendwelchen" Daten ein Element:

elem = etree.Element('{myns}movie')
elem.title = 'Blah'

Und reiche das durch diverse Klassen durch (naja genau genommen 2), am
Ende wird dann

rootElem.append(elem)

gemacht und schwupps hab ich wieder extra NS-Tags im XML Output. 

Jemand ne Idee wie ich da drumherumkomme? 

Andreas

-- 
You will forget that you ever knew me.