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)

参考

https://docs.python.org/3/library/xml.dom.html

以上是关于Python基于 DOM 的 XML 文档写入(xml.dom.minidom)的主要内容,如果未能解决你的问题,请参考以下文章

将DOM文档写入XML文件

Python:minidom模块(DOM写入和解析XML)

Python minidom模块(DOM写入和解析XML)

操作xml文档,将文档中的数据读取到内存中

python读取,写入和更新xml文件

DOM解析xml文件