Python ElementTree:如何在非常具体的位置添加SubElement?

时间:2014-09-13 15:51:29

标签: python xml elementtree

我想在xml文件中添加一个子元素,但是在一个非常特定的位置,不会附加到结尾。

标准方式是:

subi = ET.SubElement(root[0][0], 'subi')

哪个好。

但是:让我们说,root [0] [0]已经有两个孩子,因此可以通过root [0] [0] [0]和root [0] [0] [1]访问。

我想" subi"成为新的中间孩子,根[0] [0] [1],使原来的第二个孩子成为第三个孩子根[0] [0] [2]。

有办法吗? (我对生活和自然的体验会说不,但我对python =)寄予厚望。

1 个答案:

答案 0 :(得分:2)

您可以使用Element.insert方法。它允许您指定索引。

例如,要在3rd(index:2)元素之前插入:

>>> import xml.etree.ElementTree as ET
>>>
>>> root = ET.fromstring('''
... <root>
...     <first></first>
...     <second></second>
...     <third></third>
... </root>
... ''')
>>>
>>> new = ET.Element('new')
>>> root.insert(2, new)  # <-----------
>>> print(ET.tostring(root))
<root>
    <first />
    <second />
    <new /><third />
</root>