news 2026/5/8 2:38:52

Qt ----- 各类字符串解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qt ----- 各类字符串解析

目录

  • 1,xml字符串解析
    • 1.1 QDomElement 节点解析类
    • 1.2 QDomNode节点遍历类
    • 1.3 QDomNodeList 类
  • 2,创建xml字符串
    • 2.1 QDomDocument类的函数
    • 2.2 QDomElement类的函数

1,xml字符串解析

1.1 QDomElement 节点解析类

QDomElement

概述
QDomElement 继承自 QDomNode,专门用于表示 XML 文档中的元素节点。元素节点是 XML 文档的基本构建块,它们可以包含子元素、文本内容和属性。

常用成员函数

  • tagName():返回元素的标签名,例如在 元素中,返回 “book”。
  • attribute(const QString &name, const QString &defaultValue = QString()):获取指定属性的值。如果属性不存在,返回默认值(默认为空字符串)。例如,对于 ,attribute(“category”) 将返回 “cooking”。
  • setAttribute(const QString &name, const QString &value):设置元素的属性值。
  • elementsByTagName(const QString &tagName):返回所有具有指定标签名的子元素,以QDomNodeList 的形式。例如,在一个包含多个 元素的父元素中,调用
    elementsByTagName(“book”) 会返回所有的 元素。

1.2 QDomNode节点遍历类

QDomNode

概述:
QDomNode 是 DOM 树中所有节点的抽象基类。它代表了 XML 文档中的一个节点,可以是元素节点、文本节点、属性节点、注释节点等各种类型的节点。通过 QDomNode,可以遍历 DOM 树,访问节点的属性和子节点等。

常用成员函数:

  • childNodes():返回该节点的所有子节点,以 QDomNodeList 的形式。
  • firstChild():返回该节点的第一个子节点,如果没有子节点则返回一个空的 QDomNode。
  • lastChild():返回该节点的最后一个子节点,如果没有子节点则返回一个空的 QDomNode。
  • nextSibling():返回该节点的下一个兄弟节点,如果没有下一个兄弟节点则返回一个空的 QDomNode。
  • previousSibling():返回该节点的上一个兄弟节点,如果没有上一个兄弟节点则返回一个空的 QDomNode。
  • isElement():判断该节点是否为元素节点,如果是则返回 true,否则返回 false。
  • toElement():该函数尝试将QDomNode对象转换为QDomElement对象。如果QDomNode实际上代表一个元素节点,toElement()将返回对应的QDomElement对象,以便访问元素特定的属性和方法。如果QDomNode不是元素节点,toElement()将返回一个空的QDomElement对象,其isNull()函数将返回true。

1.3 QDomNodeList 类

QDomNodeList
概述
QDomNodeList 是一个节点列表,它包含了一系列的 QDomNode。这个列表可以是通过 QDomNode 的 childNodes() 或 QDomElement 的 elementsByTagName() 等函数获取的子节点集合。

常用成员函数

  • count():返回列表中节点的数量。
  • at(int index):返回列表中指定索引位置的节点。索引从 0 开始,如果索引超出范围,返回一个空的 QDomNode。
  • operator[](int index):这是 at(int index) 的重载,也用于返回列表中指定索引位置的节点。

2,创建xml字符串

在 Qt 中使用QDomDocument创建 XML 字符串主要涉及以下类和函数:
主要类

  • QDomDocument:代表整个 XML 文档,用于管理文档的结构,包括创建节点、添加节点到文档树以及将文档转换为字符串。
  • QDomElement:表示 XML 文档中的元素节点。通过它可以创建元素、设置元素的属性以及添加子元素。
  • QDomText:用于表示文本节点,即元素内的文本内容。虽然在代码中通常使用
  • QDomDocument::createTextNode函数创建文本节点并添加到元素中,但了解这个类有助于理解 XML 文档结构。
  • QDomProcessingInstruction:用于创建处理指令,例如 XML 声明(<?xml version="1.0" encoding="UTF - 8"?>)就是一个处理指令。

常用函数

2.1 QDomDocument类的函数

  • createProcessingInstruction(const QString &target, const QString& data):创建一个处理指令。target通常为"xml",data包含版本和编码信息等,如"version=“1.0”
    encoding=“UTF - 8"”。
  • createElement(const QString& tagName):创建一个指定标签名的元素节点。例如,createElement(“book”)创建一个元素。
  • createTextNode(const QString& text):创建一个包含指定文本的文本节点。例如,createTextNode(“Some text”)创建一个文本节点。
  • appendChild(const QDomNode& node):将一个节点添加到文档树中,作为当前文档的子节点。可以添加处理指令、根元素等。
  • toString(int indent = 0):将QDomDocument转换为字符串形式的
    XML。indent参数用于指定缩进级别,默认为 0(无缩进)。

2.2 QDomElement类的函数

  • setAttribute(const QString &name, const QString& value):为元素设置属性。例如,element.setAttribute(“category”,
    “fiction”)为element元素设置category属性,值为"fiction"。
  • appendChild(const QDomNode& node):将一个节点添加为当前元素的子节点。可以添加子元素或文本节点等。例如,bookElement.appendChild(titleElement)将titleElement添加为bookElement的子元素。
  • // 创建文本节点
    QDomText textNode = doc.createTextNode(“This is some text within the root element”);
    root.appendChild(textNode);
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 14:36:01

CTF流量分析实战指南:从手足无措到游刃有余的进阶之路

CTF流量分析实战指南&#xff1a;从手足无措到游刃有余的进阶之路 【免费下载链接】CTF-NetA 项目地址: https://gitcode.com/gh_mirrors/ct/CTF-NetA 还在为CTF比赛中复杂的网络流量分析而头疼吗&#xff1f;面对杂乱的pcap文件&#xff0c;新手选手往往感到无从下手。…

作者头像 李华
网站建设 2026/5/1 1:41:17

PyTorch-CUDA-v2.6镜像运行DreamBooth进行个性化训练

PyTorch-CUDA-v2.6镜像运行DreamBooth进行个性化训练 在生成式AI迅速普及的今天&#xff0c;越来越多的研究者、开发者和内容创作者希望将特定人物、风格或物体“注入”到Stable Diffusion这类预训练模型中——比如让AI学会画出某个真实人物的不同姿态&#xff0c;或者复现某位…

作者头像 李华
网站建设 2026/5/6 12:28:15

PyTorch-CUDA-v2.6镜像结合ElasticSearch构建语义搜索

PyTorch-CUDA-v2.6镜像结合ElasticSearch构建语义搜索 在信息爆炸的时代&#xff0c;用户对搜索系统的期待早已超越简单的“关键词匹配”。当员工在企业知识库中输入“怎么申请年假&#xff1f;”&#xff0c;系统如果只能命中包含“年假”字样的文档&#xff0c;而错过写有“提…

作者头像 李华
网站建设 2026/5/4 20:02:52

Display Driver Uninstaller终极指南:快速彻底清理显卡驱动残留

Display Driver Uninstaller终极指南&#xff1a;快速彻底清理显卡驱动残留 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uni…

作者头像 李华
网站建设 2026/4/25 5:58:02

CCS安装教程:解决C2000常见错误的实践方案

搭建C2000开发环境&#xff1a;从CCS安装到实战调试的完整避坑指南在电力电子与实时控制领域&#xff0c;TI的C2000系列数字信号控制器&#xff08;DSC&#xff09;早已成为工程师手中的“利器”。无论是电机驱动、数字电源还是新能源汽车电控系统&#xff0c;TMS320F28379D、F…

作者头像 李华
网站建设 2026/5/3 8:01:55

Elsevier Tracker:科研投稿智能监控助手,告别手动查询烦恼

Elsevier Tracker&#xff1a;科研投稿智能监控助手&#xff0c;告别手动查询烦恼 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 作为科研工作者&#xff0c;你是否曾经为了Elsevier期刊投稿的科研进度监控而反复登…

作者头像 李华