Gut, da habe ich etwas voreilig von lxml.etree auf die Standardbibliothek geschlossen. lxml.etree erzeugt nämlich eine separate Liste, deren Modifikation keine Auswirkungen auf den Tree hat:Zap hat geschrieben:Nein das macht ElementTree (zumindest das build-in von Python 2.5) nicht.lunar hat geschrieben:Kindelementen. Außerdem erzeugt ".getchildren()" meines Wissens eine separate Liste, so dass man problemlos per ".remove()" aus dem Element entfernen kann.Code: Alles auswählen
In [83]: id(r._children) Out[83]: 15341248 In [84]: id(r.getchildren()) Out[84]: 15341248
Code: Alles auswählen
>>> parent.getchildren()
[<Element children at 1635838>, <Element children at 1635890>]
>>> parent.getchildren().pop()
<Element children at 1635890>
>>> parent.getchildren()
[<Element children at 1635838>, <Element children at 1635890>]
Da kommt nicht das gleiche raus: Bei seinem Code ist das Ergebnis "<parent>Dies ist ein Text kind</parent>", in der interaktiven Sitzung allerdings "<parent>Dies ist ein Text mit kind</parent>".