如何使用ElementTree在python中制作xml树的副本?

时间:2016-08-11 21:03:06

标签: python xml elementtree

我正在使用xml.etree.ElementTree来解析xml文件。我正在通过以下方式解析xml文件:

import xml.etree.ElementTree as ET
tree = ET.parse(options.xmlfile)
root = tree.getroot()

这是我的xml文件:

<rootElement>
    <member>
        <member_id>439854395435</member_id>
    </member>
</rootElement>

然后我保存它:

tree.write(options.outcsvfile)

如何制作我的树的副本以生成这样的内容:

<rootElement>
    <member>
        <member_id>439854395435</member_id>
    </member>
    <member>
        <member_id>439854395435</member_id>
    </member>
</rootElement>

1 个答案:

答案 0 :(得分:3)

您可以创建member元素的副本并附加它。例如:

import xml.etree.ElementTree as ET
import copy

tree = ET.parse("test.xml")
root = tree.getroot() 

# Find element to copy 
member1 = tree.find("member")

# Create a copy
member2 = copy.deepcopy(member1)

# Append the copy 
root.append(member2)

print ET.tostring(root)

输出:

<rootElement>
    <member>
        <member_id>439854395435</member_id>
    </member>
<member>
        <member_id>439854395435</member_id>
    </member>
</rootElement>