20.2 PyQt5-【XML操作】-QXmlStreamWriter

1.QXmlStreamWriter简介

在 PyQt5 中,QXmlStreamWriter用于逐步生成 XML 数据。支持以流的形式写入XML,适合处理较大或复杂的XML文件

2.QXmlStreamWriter案例

import sys

from PyQt5.QtCore import QXmlStreamWriter, QFile, QIODevice

# 创建一个文件用于输出 XML
file = QFile("Demo.xml")
if not file.open(QIODevice.WriteOnly):
    print("打开文件错误")
    sys.exit(1)

# 创建 QXmlStreamWriter 对象
writer = QXmlStreamWriter(file)


# 启用自动格式化
writer.setAutoFormatting(True)
writer.setAutoFormattingIndent(4)

# 开始写入 XML 文档
writer.writeStartDocument()

# 写入根元素
writer.writeStartElement("root")

# 写入一个带属性的元素
writer.writeStartElement("item")
writer.writeAttribute("id", "1")
writer.writeCharacters("item 1")
writer.writeEndElement()  # 结束  元素

# 写入一个空元素
writer.writeEmptyElement("emptyItem")

# 写入带命名空间的元素
writer.writeStartElement("https://www.python.org/", "element")
writer.writeDefaultNamespace("https://www.python.org/")
writer.writeCharacters("Namespaced")
writer.writeEndElement()

# 结束根元素
writer.writeEndElement()

# 结束 XML 文档
writer.writeEndDocument()

# 关闭文件
file.close()

3.常用方法和属性

方法和属性

描述

autoFormatting()

检查是否启用了自动格式化

autoFormattingIndent()

获取自动格式化的缩进字符数

setAutoFormatting(bool)

启用或禁用自动格式化,True 启用,False 禁用

setAutoFormattingIndent(int)

设置自动格式化时每一级的缩进字符数

writeStartDocument(version: str)

开始写入 XML 文档的头部声明(如

writeEndDocument()

结束 XML 文档,确保所有打开的标签被正确关闭。写完文档的最后一个元素后调用此方法。

writeStartElement(elementName: str)

开始写入一个 XML 元素

writeEndElement()

结束当前的 XML 元素,生成 或自闭合标签

writeEmptyElement(elementName)

写入一个自闭合的 XML 元素,如

writeAttribute(name, value)

为当前元素写入属性,生成 name="value"

writeAttributes(attributes: QXmlStreamAttributes)

写入一组属性,例如 attributes = QXmlStreamAttributes() attributes.append("id", "123") attributes.append("type", "example") writer.writeAttributes(attributes)

writeCharacters(text: str)

为当前元素写入字符数据,如 elementText,生成 text

writeCDATA(text: str)

写入一段 CDATA 字符数据,如

writeComment(comment: str)

写入一条注释,如

writeProcessingInstruction(target: str, data: str)

写入一个处理指令,例如:

writeNamespace(namespaceUri: str, prefix: str)

为当前元素写入命名空间声明,例如:xmlns:prefix="namespaceUri"

writeDefaultNamespace(namespaceUri: str)

为当前元素写入默认命名空间声明,例如:xmlns="namespaceUri"

setDevice(device)

设置输出设备,可以是文件、QIODeviceQByteArray

device()

获取当前输出设备

相关文章

Python 解析 XML

1 简介XML 全称 Extensible Markup Language,中文译为可扩展标记语言。XML 之前有两个先行者:SGML 和 HTML,率先登场的是 SGML, 尽管它功能强大,但文档结...

Python 读写XML文件

在Python中,可以使用内置的xml.etree.ElementTree模块来读取和写入XML文件。这个模块提供了一种简单而有效的方式来解析和操作XML文档。下面是使用xml.etree.Eleme...

深入解析:Python中的XML处理技巧与实践

解析XML文件是Python编程中的一项重要技能,特别是在处理配置文件、数据交换格式或web服务响应时。Python提供了多种库来实现这一功能,其中xml.etree.ElementTree和lxml...

python编程:配置文件xml的读取写入

XML,全称为ExtentsibleMarkup Language,即可扩展标记语言,是用来定义其它语言的一种元语言,使用自定义的标签对文档内容进行描述。被设计用来传输和存储数据。XML和HTML类似...

Python和XML

XML 是一种可移植的开源语言,它允许程序员开发可由其他应用程序读取的应用程序,而不管操作系统和/或开发语言如何。什么是 XML?可扩展标记语言 (XML) 是一种与 HTML 或 SGML 非常相似...