如何使用Python ElementTree将新数据追加到现有XML? [英] How do I append new data to existing XML using Python ElementTree?
本文介绍了如何使用Python ElementTree将新数据追加到现有XML?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是Python / ElementTree 的新手。我有以下XML示例:
I am new to Python/ElementTree. I have the following XML sample:
<users>
<user username="admin" fullname="admin" password="" uid="1000"/>
<user username="user1" fullname="user1" password="" grant_admin_rights="yes"><group>my_group</group><group>group_2</group></user>
</users>
我想在现有XML上附加以下内容:
I would like to append the following to this existing XML:
<user username="+username+" password="+password+"><group>+newgroup+</group></user>
所以我的最终输出应该是这样的:
so my final output should be like this:
<users>
<user username="admin" fullname="admin" password="" uid="1000"/>
<user username="user1" fullname="user1" password="" grant_admin_rights="yes"><group>my_group</group><group>group_2</group></user>
<user username="+username+" password="+password+"><group>+newgroup+</group></user>
</users>
这是我的尝试:
import sys
import xml.etree.ElementTree as ET
class Users(object):
def __init__(self, users=None):
self.doc = ET.parse("users.xml")
self.root = self.doc.getroot()
def final_xml(self):
root_new = ET.Element("users")
for child in self.root:
username = child.attrib['username']
password = child.attrib['password']
user = ET.SubElement(root_new, "user")
user.set("username",username)
user.set("password",password)
try:
fullname = child.attrib['fullname']
except KeyError:
pass
for g in child.findall("group"):
group = ET.SubElement(user,"group")
group.text = g.text
tree = ET.ElementTree(root_new)
tree.write(sys.stdout)
推荐答案
在ElementTree中,Element对象具有 append方法。通过使用这种方法,您可以直接添加新的XML标记。
In ElementTree, Element objects have an "append" method. By using this method you can directly add the new XML tag.
例如:
user = Element('user')
user.append((Element.fromstring('<user username="admin" fullname="admin" password="xx" uid="1000"/>')))
其中元素来自xml的 .etree.ElementTree导入元素
。
where "Element" comes from from xml.etree.ElementTree import Element
.
这篇关于如何使用Python ElementTree将新数据追加到现有XML?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文