我有一个如下所示的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()
答案 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>'
如果这不能回答您的问题,我建议您更具体地了解您要尝试实现的流程。