简体   繁体   English

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

[英]How to make a copy of xml tree in python using ElementTree?

I'm using xml.etree.ElementTree to parse xml file.我正在使用 xml.etree.ElementTree 来解析 xml 文件。 I'm parsing xml file in the following way:我正在以下列方式解析 xml 文件:

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

This is my xml file:这是我的 xml 文件:

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

Then I'm saving it:然后我保存它:

tree.write(options.outcsvfile)

How can I make a copy of my tree to produce something like this:我怎样才能复制我的树来产生这样的东西:

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

You can create a copy of the member element and append it.您可以创建member元素的副本并附加它。 Example:示例:

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)

Output:输出:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM