Я пытаюсь отредактировать файл XML с помощью Python ElementTree. Мне нужен мой код для замены текста всех элементов с тегом «от» на значения текста элементов с тегом «до». Значения следует заменить внутри родительских элементов.
Пример XML-файла:
<note>
<letter>
<to>Tove</to>
<from>Jani</from>
</letter>
<letter>
<to>Mitch</to>
<from>Mcdeer</from>
</letter>
</note>
Мой код:
import os
import xml.etree.ElementTree as et
base_path = os.path.dirname(os.path.realpath(__file__))
xml_file = os.path.join(base_path, 'note.xml')
#print(xml_file)
tree = et.parse(xml_file)
root = tree.getroot()
for d in tree.findall('.//to'):
for e in tree.findall('.//from'):
e.text = d.text
tree.write('note1.xml')
Ожидаемый результат:
<note>
<letter>
<to>Tove</to>
<from>Tove</from>
</letter>
<letter>
<to>Mitch</to>
<from>Mitch</from>
</letter>
</note>
Фактический результат:
<note>
<letter>
<to>Tove</to>
<from>Mitch</from>
</letter>
<letter>
<to>Mitch</to>
<from>Mitch</from>
</letter>
</note>