2016-06-01 2 views
-1

Ich möchte ein Element Baum wie dies in Python erstellen:Python etree einfügen, anhängen und Subelement

<parent> 
    <child/> 
    <child/> 
    <child/> 
</parent> 

ich es als eine leere Vorlage verwenden möchten, die ich später arbeiten können. Ich kann jedoch kein <child> Element an das Element <parent> einfügen oder anhängen, obwohl etree.SubElement funktioniert. Um genauer zu sein:

Dies erzeugt <parent><child/></parent>, dh nur eine <child> wurde eingefügt:

root = etree.Element('root') 
child = etree.Element('child') 
for i in range(3): 
    root.insert(0,child) 

Dies funktioniert auch nicht und produzieren das gleiche Ergebnis wie oben:

root = etree.Element('root') 
child = etree.Element('child') 
for i in range(3): 
    root.append(child) 

Dies funktioniert :

root = etree.Element('root') 
for i in range(3): 
    etree.SubElement('child') 

Ich verstehe nicht, warum ich nicht kann Einfügen oder Anhängen eines Elements für mehrere Male.

+0

Sie verwenden in Ihren ersten Beispielen immer dasselbe Objekt –

Antwort

1

Ich denke, Sie neues Element Objekte erstellen müssen sie an der Wurzel anzuhängen, sonst ist es das gleiche Element, das Sie zweimal anhängen, die keine Wirkung hat:

root = etree.Element('root') 

for i in range(3): 
    child = etree.Element('child') 
    root.append(child) 

Hoffnung, das hilft.

Verwandte Themen