Python基于 DOM 的 XML 文档写入(xml.dom.minidom)
Posted Xavier Jiezou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基于 DOM 的 XML 文档写入(xml.dom.minidom)相关的知识,希望对你有一定的参考价值。
引言
本文讲解如何利用 Python 内置模块 xml.dom.minidom 快速完成 xml 文档写入工作。
示例
<?xml version="1.0" encoding="utf-8"?>
<root csdn="https://blog.csdn.net/qq_42951560">
<!--Xavier's Profile-->
hello world
<name>Xavier Jiezou</name>
<firends>
<friend>
<name>Jack</name>
<age>18</age>
<gender>male</gender>
</friend>
<friend>
<name>John</name>
<age>19</age>
<gender>male</gender>
</friend>
<friend>
<name>jane</name>
<age>20</age>
<gender>female</gender>
</friend>
</firends>
</root>
代码
from xml.dom import minidom
def create_xml_minidom(save_name):
# 新建 xml 文档对象
doc = minidom.Document()
# 创建根节点
root = doc.createElement('root')
# 设置根节点属性
root.setAttribute('csdn', 'https://blog.csdn.net/qq_42951560')
# 添加根节点到文档对象
doc.appendChild(root)
# 创建注释节点
comment = doc.createComment("Xavier's Profile")
root.appendChild(comment)
# 创建文本节点
text = doc.createTextNode('hello world')
root.appendChild(text)
# 创建第一个叶子节点
name = doc.createElement('name')
name.appendChild(doc.createTextNode('Xavier Jiezou'))
root.appendChild(name)
# 创建第二个叶子节点
friends = doc.createElement('firends')
friends_list = [
{'name': 'Jack', 'age': 18, 'gender': 'male'},
{'name': 'John', 'age': 19, 'gender': 'male'},
{'name': 'jane', 'age': 20, 'gender': 'female'}
]
for item in friends_list:
friend = doc.createElement('friend')
name = doc.createElement('name')
name.appendChild(doc.createTextNode(item['name']))
age = doc.createElement('age')
age.appendChild(doc.createTextNode(str(item['age'])))
gender = doc.createElement('gender')
gender.appendChild(doc.createTextNode(item['gender']))
friend.appendChild(name)
friend.appendChild(age)
friend.appendChild(gender)
friends.appendChild(friend)
root.appendChild(friends)
# 保存 xml 文档对象
with open(save_name, 'wb') as f:
f.write(doc.toprettyxml(encoding='utf-8'))
if __name__ == '__main__':
create_xml_minidom('text.xml')
推荐
参考
以上是关于Python基于 DOM 的 XML 文档写入(xml.dom.minidom)的主要内容,如果未能解决你的问题,请参考以下文章