2012-11-08 71 views
2

我的XML: -如何插入一個孩子子元素在Python的ElementTree

<users> 
</users> 

我只是需要追加一個子元素: -

<users> 
<user name="blabla" age="blabla" ><group>blabla</group> 
</users> 

我的代碼提供了一些錯誤:(

import xml.etree.ElementTree as ET 
doc = ET.parse("users.xml") 
root_node = doc.find("users") 
child = ET.SubElement(root_node, "user") 
child.set("username","srquery") 
group = ET.SubElement(child,"group") 
group.text = "fresher" 
tree = ET.ElementTree(root_node) 
tree.write("users.xml") 

我錯過了「追加」,但我不知道該在哪裏添加該內容,在此先感謝您。

回答

3

改變這一行

root_node = doc.find("users") 

...這一行

root_node = doc.getroot() 

這裏的關鍵外賣是doc已經根節點的引用,並與getroot()訪問。 doc.find('users')不會返回任何東西,因爲users不是根的孩子,它是根本身。

+0

oooyi :)我的錯誤,感謝您的時間三聯。上帝祝福你。 –

0

一個slightlly修改後的版本來解釋發生了什麼:

root = ET.fromstring('<users></users>') # same as your doc=ET.parse(...).find(...), btw. doc=root 
el = ET.Element('group') # creating a new element/xml-node 
root.append(el)   # and adding it to the root 

ET.tostring(root) 
>>> '<users><group /></users>' 
el.text = "fresher"  # adding your text 
ET.tostring(root) 
>>> '<users><group>fresher</group></users>' 
相關問題