2014-09-13 332 views
2

我想添加一個子元素到一個XML文件,但在一個非常具體的位置,不附加到結束。Python ElementTree:如何添加SubElement在非常特定的位置?

的標準方法是:

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有很高的期望=)

回答

2

您可以使用Element.insert方法。它允許你指定一個索引。

例如,要插入的第三前(指數: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> 
+0

即是有幫助的,謝謝。但是,爲了準確地獲得我想要去的位置,我發現可以將其修改爲root [index] .insert(position,element)。沒有[索引]我無法精確瞄準。 - >但插入是我一直在尋找的東西! – sibert 2014-09-14 10:51:32

相關問題