Добавление элемента в XML с ElementTree - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь добавить элемент в некоторый XML с помощью ElementTree.

<device>
    <general>
        <item1>text</item1>
    </general>
</device>

Я хочу добавить <item2>text</item2> под общим.

Я пытался

ElementTree.SubElement(xml, '/device/general/item2')
ElementTree.SubElement(xml, 'general/item2')

чтобы добавить поле, но обе добавили новые строки в конце XML, а не добавляли внутри существующего общего элемента.

Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 06 июля 2018

Второй аргумент SubElement должен быть именем отдельного элемента; это не может быть «путь», такой как general/item2. Получить ссылку на элемент general и добавить к ней подэлемент.

from xml.etree import ElementTree as ET

tree = ET.parse("device.xml")

general = tree.find(".//general")
item2 = ET.SubElement(general, "item2")
item2.text = "text"
...