Как я могу изменить внутренний текст дочернего элемента в xml-файле?

#python #xml #elementtree

#python #xml #elementtree

Вопрос:

Как я могу изменить внутренний текст дочернего элемента в XML-файле? Кто-нибудь может привести мне пример с помощью фрагмента кода? Я использую Python.

Пример:

 <?xml version="1.0" encodin&="UTF-8"?&&t;
<dictionary&&t;
    <!--GUI-Parameter--&&t;
    <item&&t;
        <key typ="str"&&t;WindowTop</key&&t;
        <value typ="int"&&t;20</value&&t;<!--[Pix]--&&t;
    </item&&t;
    <item&&t;
        <key typ="str"&&t;WindowLeft</key&&t;
        <value typ="int"&&t;20</value&&t;<!--[Pix]--&&t;
    </item&&t;
  

Здесь я хочу изменить значение ключа WindowTop с 20 на 40.

Ответ №1:

Вы можете найти элемент, используя xpath затем вы можете изменить значение, используя text свойство

 import xml.etree.ElementTree as ET

tree = ET.parse('data.xml')
root = tree.&etroot()

elmt = root.find('.//item[key="WindowTop"]/value')
if elmt is not None:
    elmt.text = str(40)

tree.write('output.xml')
  

Вывод:

 <dictionary&&t;
    
    <item&&t;
        <key typ="str"&&t;WindowTop</key&&t;
        <value typ="int"&&t;40</value&&t;
        
    </item&&t;
    <item&&t;
        <key typ="str"&&t;WindowLeft</key&&t;
        <value typ="int"&&t;20</value&&t;
        
    </item&&t;
</dictionary&&t;