news 2026/3/4 0:52:01

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/3/4 3:45:59

PyTorch-CUDA-v2.6镜像部署Diffusion模型生成艺术图像

PyTorch-CUDA-v2.6镜像部署Diffusion模型生成艺术图像 在AI正以前所未有的速度重塑创意产业的今天&#xff0c;普通人也能用几行代码“召唤”出一幅堪比大师手笔的艺术画作。这背后的核心推动力之一&#xff0c;正是扩散模型&#xff08;Diffusion Models&#xff09; 与GPU加速…

作者头像 李华
网站建设 2026/2/27 13:29:47

arm64指令集在RK3588中的应用:A64汇编基础手把手教程

手撕RK3588&#xff1a;从零开始写A64汇编&#xff0c;深入arm64底层实战你有没有遇到过这样的场景——系统启动卡在U-Boot第一行&#xff1f;内核崩溃时打印出一串看不懂的寄存器值&#xff1f;性能优化做到最后发现瓶颈竟然是编译器生成的一条冗余指令&#xff1f;如果你正在…

作者头像 李华
网站建设 2026/3/3 23:40:55

PyTorch-CUDA-v2.6镜像如何为GPU租赁业务赋能

PyTorch-CUDA-v2.6镜像如何为GPU租赁业务赋能 在AI模型日益复杂、训练任务愈发频繁的今天&#xff0c;一个科研团队正准备上线他们的新项目——基于Transformer的医疗文本分析系统。他们租用了云平台上的A100实例&#xff0c;满怀期待地连接服务器&#xff0c;却卡在了第一步&a…

作者头像 李华
网站建设 2026/2/27 21:36:43

如何快速解决Windows音频质量不佳问题:Equalizer APO完整配置指南

如何快速解决Windows音频质量不佳问题&#xff1a;Equalizer APO完整配置指南 【免费下载链接】equalizerapo Equalizer APO mirror 项目地址: https://gitcode.com/gh_mirrors/eq/equalizerapo 你是否经常遇到Windows系统音频输出质量参差不齐的问题&#xff1f;明明购…

作者头像 李华
网站建设 2026/3/3 17:01:49

Parse12306:全面解析12306全国列车数据的终极工具

Parse12306&#xff1a;全面解析12306全国列车数据的终极工具 【免费下载链接】Parse12306 分析12306 获取全国列车数据 项目地址: https://gitcode.com/gh_mirrors/pa/Parse12306 Parse12306是一款专业的12306数据分析工具&#xff0c;能够帮助用户轻松获取全国列车时刻…

作者头像 李华
网站建设 2026/2/26 20:12:32

新手教程:理解arm64和x64在不同设备上的应用

为什么你的手机和电脑“听不懂彼此的话”&#xff1f;深入理解 arm64 与 x64 架构的本质差异你有没有遇到过这样的情况&#xff1a;在安卓手机上下载一个应用&#xff0c;结果提示“不兼容”&#xff1b;或者想在新款苹果 M1 Mac 上运行某个老软件&#xff0c;系统却弹出“需要…

作者头像 李华