更改 etree 元素对象中的现有文本

Alter existing text in etree Element object

我有以下 XML:

<root>
    <element>
        <subelement1>
            subelement1 text
        </subelement1>
        <subelement2>
            subelement2 text
        </subelement2>
    </element>
</root>

我的目标是解析树,并仅 更改 特定子元素中的数据,在本例中为 <subelement2>。因此,当前存在字符串的位置subelement2 text,我希望能够向其附加数据,以便生成的 XML 如下所示:

<root>
    <element>
       <subelement1>
                subelement1 text
       </subelement1>
       <subelement2>
                subelement2 text + my new string of text
       </subelement2>
    </element>
</root>

注意,subelement2 text 现在变成了 subelement2 text + my new string of text


我已经可以找到解析文本并找到 subelement2,像这样:

import xml.etree.ElementTree as ET
doc = ET.fromstring('''
<root>
    <element>
        <subelement1>
            subelement1 text
        </subelement1>
        <subelement2>
            subelement2 text
        </subelement2>
    </element>
</root>
''')
el = doc.find('.//subelement2')

...但是一旦我将 Element 对象分配给 el,我该如何更改其文本?

我在寻求理解方面的帮助,是用于更改子元素内现有文本的一般函数或方法,如上例所示。

只需分配给相关元素的 text 属性即可:

el = doc.find('.//subelement2')
el.text += ' + my new string of text'