如何使用Python复制xml元素?

时间:2015-08-12 19:52:38

标签: python xml

我有一个如下所示的XML文件:

 <a>
   <b>
    <c>World</c>
   </b>
 </a>

应该是这样的:

 <a>
  <b>
   <c>World</c>
   <c>World</c>
  </b>
 </a> 

我的代码如下:

import xml.etree.ElementTree as ET

file=open("6x6.xml", "r")
site=file.ET.Element("b")
for c in file:
  site.append(c)
file.write("out.xml")
file.close()

2 个答案:

答案 0 :(得分:6)

您可以使用copy.deepcopy()来实现这一目标,例如:

import xml.etree.ElementTree as ET
import copy

s = """<a>
   <b>
    <c>World</c>
   </b>
 </a>"""

file = ET.fromstring(s)
b = file.find("b")
for c in file.findall(".//c"):
    dupe = copy.deepcopy(c) #copy <c> node
    b.append(dupe) #insert the new node

print(ET.tostring(file))

输出

<a>
   <b>
    <c>World</c>
   <c>World</c>
   </b>
 </a>

相关问题:etree Clone Node

答案 1 :(得分:-1)

如果您的问题非常简单,那么您并不需要以编程方式执行此操作。你可以使用文本编辑器。但是如果你想使用Python,那应该这样做:

my_xml_string = '<a>\n\t<b>\n\t\t<c>World</c>\n\t</b>\n</a>'
my_xml_string2 = '<a>\n\t<b>\n\t\t<c>World</c>\n\t\t<c>World</c>\n\t</b>\n</a>'

如果这不能回答您的问题,我建议您更具体地了解您要尝试实现的流程。