2012-10-05 84 views
6

我使用python在xml文檔中創建元素,然後將其作爲文檔的第一個子項插入。所以,如果我創建一個名爲newChild的elment我希望這樣的XML ...在python中使用ElementTree插入xml元素

<root> 
    <childA></childA> 
    <childB></childB> 
    <childC></childC> 
</root> 

成爲...

<root> 
    <newChild></newChild> 
    <childA></childA> 
    <childB></childB> 
    <childC></childC> 
</root> 

我知道,在任意XML不該元素的順序」但是我爲一個古老的系統編寫XML文檔,如果xml元素沒有按照預期的順序打破,那麼我就沒有這方面的選擇。

+0

你到目前爲止嘗試過什麼?你有什麼具體問題?什麼是錯誤信息?或者你希望我們編寫你的代碼? – Achim

+0

我的問題的定義非常簡潔。我確實閱讀過文檔(並且在第一次通過時承認錯過了正確的答案) - 我還沒有編寫任何代碼,因爲我沒有找到適合我需求的文檔中的任何內容。 http://stackoverflow.com/questions/4739834/rails-3-routing-to-customer-areas 當你問這個問題時,你希望有人寫你的代碼嗎?你的錯誤信息是什麼? – Dave

回答

9

xml.etree.ElementTree.Element.insert方法允許您向插入特定位置的元素添加新的子元素。

在你的情況下,element.insert(0, new_sub_element)應該做的伎倆。

+0

謝謝 - 這看起來完全像我在找的東西。我習慣perl分析器使用複製/粘貼,並沒有想到尋找插入方法。當我週一回到上班時間並接受/接受時,我會給你一個機會。 – Dave

+0

在我的Python 2.7運行時,插入替換在該位置的現有組件。 在這個例子中,childA將被newChild所取代 – ajeans