Qt 中的 XML 支持
Qt 提供 API 来读取和解析 XML 流,以及写入这些流。以下关键类通过提供必要的基础设施来促进这些行动:
- QXmlStreamReader类提供了一个解析器来读取 XML。它是一个格式良好的 XML 1.0 解析器,不包括外部解析实体。
-
QXmlStreamWriter类为 XML 编写器提供了一个简单的流 API。它是用于编写 XML的QXmlStreamReader的对应物,它在setDevice () 指定的 QIODevice 上运行。
- 它是一个简单的 API,为您要编写的每个 XML 令牌或事件提供专用函数。
- 它负责根据在编写元素或属性时指定的 namespaceUri 为命名空间添加前缀。如果您必须使用某些标准化前缀,您可以通过使用 writeNamespace() 或 writeDefaultNamespace() 手动声明命名空间来强制编写器使用它们。
- 它可以通过添加换行和缩进来自动格式化生成的 XML 数据,使其具有可读性。可以使用自动格式化属性打开此功能。
- 默认情况下,它以 UTF-8 编码 XML。可以使用 setCodec() 强制执行不同的编码。
除了读写 XML 流,Qt 还为以下附加用例提供 API:
- 使用XQuery和 XPath查询 XML 数据源
- 使用 XSLT 进行 XML 转换
- XML 模式验证
以下主题提供了对 Qt XML 支持的更多见解:
Qt 中的 JSON
JSON 是一种基于文本的数据交换开放标准,易于阅读和解析。它用于表示简单的数据结构和关联数组,称为对象。它与 JavaScript 相关,但是是一种独立于语言的符号形式。
一个对象可以有两种形式:
- 名称/值对的集合
- 有序值列表
{ “last_name”:“Routledge”,“first_name”:“Ronald”,“birth_date”:1960 }
"colours": ["green", "blue", "yellow"]
本地存储
Local Storage API 提供了从 QML 和 JavaScript 访问 SQL 数据库中本地离线存储的能力。
这些数据库是特定于用户和特定于 QML 的,但可供所有 QML 应用程序访问。它们作为SQLite数据库(SQL 数据库驱动程序)存储在 QDeclarativeEngine::offlineStoragePath() 的 Databases 子目录中。
该 API 符合 HTML5 Web 数据库 API 的同步 API,W3C 工作草案 2009 年 10 月 29 日(HTML5 Web 数据库 API)。
有关使用本地存储 API 的基本演示,请参阅Qt 快速示例 - 本地存储。
QSettings 类
QSettings类提供应用程序设置的持久存储。应用程序通常会记住上一个会话的设置。
设置在不同平台上的存储方式不同。例如,在 Windows 上,它们存储在注册表中,而在 macOS 上,它们存储在 XML 文件中。
QSettings使您能够以便携的方式保存和恢复应用程序设置。构造和销毁QSettings对象是轻量级和快速的。在创建QSettings的对象时,最好不仅指定应用程序的名称,还指定组织的名称。例如:
QSettings settings("MyCompany", "Accountancy");
资源
Qt 资源系统是一种独立于平台的机制,用于在应用程序的可执行文件中存储二进制文件。如果您的应用程序经常需要某个文件或一组文件,这将非常方便。它还可以防止该特定文件丢失。
资源数据既可以编译成二进制并在应用程序代码中立即访问,也可以动态创建二进制资源并由应用程序向资源系统注册。
默认情况下,应用程序代码可以通过与存储在源树中相同的文件名: /prefix
或带有 qrc 方案的 URL 访问资源。
档案归档
存档文件是通常压缩的文件或目录的集合,以减少它们在驱动器上消耗的空间。存档文件的示例有 ZIP、TAR、RAR 和 7z。
Qt 支持由 zlib 生成的档案(参见qCompress() 和 qUncompress())。
网友评论