2017-02-24 33 views
0

我打算在指定位置插入子元素。不過,我不知道該怎麼做,使用的appendChildxml.dom的 這裏是我的XML代碼:用xml.dom.minidom(appendChild)在特定位置添加子元素

<?xml version='1.0' encoding='UTF-8'?> 
 

 
<VOD> 
 
    <root> 
 
\t <ab>sdsd 
 
\t \t <pp>pras</pp> 
 
\t \t <ps>sinha</ps> 
 
\t </ab> 
 
\t <ab>prashu</ab> 
 
\t <ab>sakshi</ab> 
 
\t <cd>dfdf</cd> 
 
    </root> 
 
    <root> 
 
\t <ab>pratik</ab> 
 
    </root> 
 
    <root> 
 
\t <ab>Mum</ab> 
 
    </root> 
 
</VOD>

我想插入另一個子元素「新「位於」cd「標記之前的第一個」根「元素中。結果應該是這樣的:

<ab>prashu</ab> 
<ab>sakshi</ab> 
<new>Anydata</new> 
<cd>dfdf</cd> 

我用這個代碼是:

import xml.dom.minidom as m 

doc = m.parse("file_notes.xml") 
root=doc.getElementsByTagName("root") 

valeurs = doc.getElementsByTagName("root")[0] 
element = doc.createElement("new") 
element.appendChild(doc.createTextNode("Anydata")) 
valeurs.appendChild(element) 

doc.writexml(open("newxmlfile.xml","w")) 

以什麼方式,我可以實現我的目標是什麼?

預先感謝您.. !!

回答

0

嘗試使用insertBefore代替。沿着這些路線的東西:

element = doc.createElement("new") 
element.appendChild(doc.createTextNode("Anydata")) 
cd = doc.getElementsByTagName("cd")[0] 
cd.parentNode.insertBefore(element, cd) 

要插入基於你可以做一個索引新節點:

cd_list = doc.getElementsByTagName("cd") 
cd_list[0].parentNode.insertBefore(element, cd_list[0]) 
+0

謝謝你的建議。 insertBefore完美工作...雖然如果我可以在特定索引值處添加子元素,它會更加方便。有什麼辦法可以做到這一點..? –

+0

是的,你可以根據索引值插入。我會更新答案。 – Garett

相關問題