Python 如何使用ElementTree根据其他元素的值更改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&

我正在尝试使用Python ElementTree编辑XML文件。我需要我的代码将所有元素的文本替换为tag from to,将元素的文本替换为tag to。应在父元素中替换值

示例XML文件:

<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>