我記住我對Python很新。我試圖將sample1.xml中的少量XML節點複製到out.xml中,如果它不存在於sample2.xml中的話。如何在Python中將多個XML節點複製到另一個文件
這是多遠我得到了之前我堅持
import xml.etree.ElementTree as ET
tree = ET.ElementTree(file='sample1.xml')
addtree = ET.ElementTree(file='sample2.xml')
root = tree.getroot()
addroot = addtree.getroot()
for adel in addroot.findall('.//cars/car'):
for el in root.findall('cars/car'):
with open('out.xml', 'w+') as f:
f.write("BEFORE\n")
f.write(el.tag)
f.write("\n")
f.write(adel.tag)
f.write("\n")
f.write("\n")
f.write("AFTER\n")
el = adel
f.write(el.tag)
f.write("\n")
f.write(adel.tag)
我不知道我錯過了什麼,但它只是複製實際的「tag
」本身。
輸出這樣:
BEFORE
car
car
AFTER
car
car
所以我錯過了孩子的節點,也是<
,>
,</
,>
標籤。預期的結果如下。
sample1.xml:
<cars>
<car>
<use-car>0</use-car>
<use-gas>0</use-gas>
<car-name />
<car-key />
<car-location>hawaii</car-location>
<car-port>5</car-port>
</car>
</cars>
sample2.xml:
<cars>
<old>
1
</old>
<new>
8
</new>
<car />
</cars>
在out.xml(終產物)預期結果
<cars>
<old>
1
</old>
<new>
8
</old>
<car>
<use-car>0</use-car>
<use-gas>0</use-gas>
<car-name />
<car-key />
<car-location>hawaii</car-location>
<car-port>5</car-port>
</car>
</cars>
所有其他節點old
和new
必須保持不變。我只是試圖用它的所有子孫(如果存在)替換<car />
節點。