使用python插入没有重复的XML元素

时间:2018-08-20 11:45:29

标签: python xml duplicates

我正在尝试制作这样的xml文件;

<root>
<a type="AAA">
    <value1>1</value1>
    <value2>2</value2>
    <value3>3</value3>
</a>
<b type="BBB">
    <value6>6</value6>
    <value7>7</value7>
    <value8>8</value8>
</b>
</root>

但是当我尝试附加xml元素时,就像;

<root>
<a type="AAA">
    <value1>1</value1>
</a>
<a type="AAA">
    <value2>2</value2>
</a>
<a type="AAA">
    <value3>3</value3>
</a>

<b type="BBB">
    <value6>6</value6>
</b>
<b type="BBB">
    <value7>7</value7>
</b>
<b type="BBB">
    <value8>8</value8>
</b>
</root>

这是代码。有人给我一些如何修复代码的建议吗?

xml = Element("root")
for i in list:
    node = Element("a", type=i.type)

    value = Element(i.name)
    value.text = i.value

    node.append(value)
    xml.append(node)

非常感谢

1 个答案:

答案 0 :(得分:0)

请勿在for循环内附加。 而是先创建节点,然后将属性附加到循环中,然后再将节点附加到xml根目录。

#crete one note before the loop. 
node = Element("a", type=i.type)

for i in list:


    value = Element(i.name)
    value.text = i.value

    node.append(value)

xml.append(node) # append here