PythonElementTree:如何在非常特定的位置添加子元素?
我想在xml文件中添加一个子元素,但要放在非常特定的位置,而不是附加到末尾 标准方法是:PythonElementTree:如何在非常特定的位置添加子元素?,python,xml,elementtree,Python,Xml,Elementtree,我想在xml文件中添加一个子元素,但要放在非常特定的位置,而不是附加到末尾 标准方法是: subi = ET.SubElement(root[0][0], 'subi') 这很好 但是:假设root[0][0]已经有两个子项,因此可以通过root[0][0][0]和root[0][0][1]访问 我希望“subi”成为新的中间子级root[0][0][1],使原来的第二个子级成为第三个子级root[0][0][2] 有办法吗?(我对生活和自然的体验可能会说不,但我对python=)有很高的期望
subi = ET.SubElement(root[0][0], 'subi')
这很好
但是:假设root[0][0]已经有两个子项,因此可以通过root[0][0][0]和root[0][0][1]访问
我希望“subi”成为新的中间子级root[0][0][1],使原来的第二个子级成为第三个子级root[0][0][2]
有办法吗?(我对生活和自然的体验可能会说不,但我对python=)有很高的期望。你们可以使用这个方法。它允许您指定索引
例如,要在第三个(索引:2)元素之前插入:
>将xml.etree.ElementTree作为ET导入
>>>
>>>root=ET.fromstring(“”)
...
...
...
...
...
... ''')
>>>
>>>new=ET.Element('new')
>>>root.insert(2,新)#>>打印(ET.tostring(root))
这很有帮助,谢谢。然而,为了准确地得到我想要去的地方,我发现可以将其修改为root[index].insert(position,element)。没有[索引]时,我无法精确定位。-->但插入是我一直在寻找的东西!
>>> 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>