使用 ElementTree 添加一个元素到 XML

Adding an element to XML with ElementTree

我正在尝试使用 ElementTree 向某些 XML 添加元素。

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

我想在通用下添加<item2>text</item2>

我试过了

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

添加字段,但都在 XML 的末尾添加了新行,而不是在现有的常规元素中添加。

知道我做错了什么吗?

SubElement的第二个参数必须是单个元素的名称;它不能是像 general/item2 这样的 "path"。获取对 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"