gpt4 book ai didi

Python ElementTree 复制带有子节点的节点

转载 作者:行者123 更新时间:2023-12-01 05:44:49 34 4
gpt4 key购买 nike

我必须将多个 XML 文件合并为一个。此外,新文件的结构也不同。这是我的“旧”结构:

<a>
<b>
<c>1</c>
<c></c>
<c></c>
<c></c>
</b>
<b>
<c>1</c>
<c></c>
<c></c>
<c></c>
</b>
<b>
<c>2</c>
<c></c>
<c></c>
<c></c>
</b>
</a>

这应该是新的:

<a>
<1>
<b>
<c>1</c>
<c></c>
<c></c>
<c></c>
</b>
<b>
<c>1</c>
<c></c>
<c></c>
<c></c>
</b>
</1>
<2>
<b>
<c>2</c>
<c></c>
<c></c>
<c></c>
</b>
</2>

所以我需要一个可以复制 b 元素及其子元素的函数。我不想为此使用 for 循环。或者说这是正确的方法吗?

最佳答案

您确定您确实需要一份副本吗?重组树就足够了吗?

import xml.etree.ElementTree as ET

list_of_files = ["tree1.xml", "tree2.xml", ...]

new_tree = ET.Element("a")
i = 1
for file in list_of_files:
original_tree = ET.parse(file)
sub_tree = ET.SubElement(new_tree, str(i))
i += 1
sub_tree.append (original_tree)
new_tree.write("merged_tree.xml")

关于Python ElementTree 复制带有子节点的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16418704/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com