2016-06-01 1 views
-1

Я хочу, чтобы создать элемент дерева, как это в Python:питон etree вставки, добавления и подэлемент

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

Я хочу, чтобы использовать его как пустой шаблон, который я могу работать позже. Однако я не могу вставить или добавить несколько элементов <child> в элемент <parent>, хотя работает etree.SubElement. Чтобы быть более конкретным:

Это производит <parent><child/></parent>, то есть только один <child> был вставлен:

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

Это не работает, либо и тот же результат, что и выше:

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

это работает :

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

Я не понимаю, почему я не могу вставить или добавить элемент несколько раз.

+0

Вы используете один и тот же объект каждый раз в своих первых примерах –

ответ

1

Я думаю, вам нужно создать новые объекты элементов, приобщать их к корню, в противном случае это тот же самый элемент, который вы добавляете в два раза, что не имеет никакого эффекта:

root = etree.Element('root') 

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

Надеется, что это помогает.