3

我的xml:-

<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")

我错过了“追加”,但我不知道在哪里添加。提前致谢。

4

2 回答 2

2

更改此行

root_node = doc.find("users")

...到这条线

root_node = doc.getroot()

这里的关键点是它doc已经是对根节点的引用,并且可以使用getroot(). doc.find('users')不会返回任何东西,因为users它不是根的孩子,它是根本身。

于 2012-11-08T03:07:25.540 回答
2

稍作修改的版本来解释发生了什么:

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>'
于 2012-11-08T03:12:58.927 回答