更改 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'
我有以下 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'