Python 如何使用ElementTree根据其他元素的值更改XML文件中元素的文本
我正在尝试使用Python ElementTree编辑XML文件。我需要我的代码将所有元素的文本替换为tag from to,将元素的文本替换为tag to。应在父元素中替换值 示例XML文件:Python 如何使用ElementTree根据其他元素的值更改XML文件中元素的文本,python,xml,elementtree,Python,Xml,Elementtree,我正在尝试使用Python ElementTree编辑XML文件。我需要我的代码将所有元素的文本替换为tag from to,将元素的文本替换为tag to。应在父元素中替换值 示例XML文件: <note> <letter> <to>Tove</to> <from>Jani</from> </letter> <letter> <to&
<note>
<letter>
<to>Tove</to>
<from>Jani</from>
</letter>
<letter>
<to>Mitch</to>
<from>Mcdeer</from>
</letter>
</note>
预期结果:
<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>
这里
输出
<note>
<letter>
<to>Tove</to>
<from>Tove</from>
</letter>
<letter>
<to>Mitch</to>
<from>Mitch</from>
</letter>
</note>
您是否安装了lxml库?@RomanPerekhrest,是的,我可以尝试使用它来完成此任务吗?如果您安装了它,我想获得所需的结果是非常可行的
import xml.etree.ElementTree as ET
xml = '''<note>
<letter>
<to>Tove</to>
<from>Jani</from>
</letter>
<letter>
<to>Mitch</to>
<from>Mcdeer</from>
</letter>
</note>'''
root = ET.fromstring(xml)
letters = root.findall('.//letter')
for letter in letters:
letter.find('from').text = letter.find('to').text
ET.dump(root)
<note>
<letter>
<to>Tove</to>
<from>Tove</from>
</letter>
<letter>
<to>Mitch</to>
<from>Mitch</from>
</letter>
</note>