使用ElementTree向XML添加元素

时间:2018-07-06 06:11:26

标签: python xml 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的末尾添加了新行,而不是在现有的常规元素中添加了新行。

有什么想法我在做什么错吗?

1 个答案:

答案 0 :(得分:1)

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"