【发布时间】:2021-11-27 08:17:25
【问题描述】:
我有一个看起来像这样的 xml 文件,XML1:
<?xml version='1.0' encoding='utf-8'?>
<report>
</report>
另外一个是这样的, XML2:
<?xml version='1.0' encoding='utf-8'?>
<report attrib1="blabla" attrib2="blabla" attrib3="blabla" attrib4="blabla" attrib5="blabla" >
<child1>
<child2>
....
</child2>
</child1>
</report>
我需要替换并放置没有子元素的 XML2 的根元素,所以 XML1 看起来像这样:
<?xml version='1.0' encoding='utf-8'?>
<report attrib1="blabla" attrib2="blabla" attrib3="blabla" attrib4="blabla" attrib5="blabla">
</report>
目前我的代码看起来像这样,但它不会删除孩子,而是将整棵树放在里面:
source_tree = ET.parse('XML2.xml')
source_root = source_tree.getroot()
report = source_root.findall('report')
for child in list(report):
report.remove(child)
source_tree.write('XML1.xml', encoding='utf-8', xml_declaration=True)
任何人都知道我该如何实现这一目标?
谢谢!
【问题讨论】:
-
这能回答你的问题吗? XML: remove child node of a node
-
不幸的是 noup,因为在这里他知道孩子的标签是什么,但在我的情况下它们正在改变,所以第二次迭代 bar = foo.findall('bar') 在我的情况下不起作用
-
您只需将
attrib从2复制到1。看我的回答。
标签: python xml parsing element elementtree