当前位置: 首页 > news >正文

免费提供网站建设外贸企业网站模板建设可以吗

免费提供网站建设,外贸企业网站模板建设可以吗,在线制作图片散发光芒,seo网络推广什么意思文章目录 背景QXmlStreamReader简单介绍使用QXmlStreamReader添加头文件<QXmlStreamReader>toString()toInt()完整代码 背景 项目中遇到需要解析某个方法返回的xml字符串&#xff0c;奈何C/C中没有原生的方法可供调用&#xff0c;只能使用第三方库&#xff0c;搜了一圈资…

文章目录

  • 背景
  • QXmlStreamReader简单介绍
  • 使用QXmlStreamReader
    • 添加头文件<QXmlStreamReader>
    • toString()
    • toInt()
    • 完整代码

背景

项目中遇到需要解析某个方法返回的xml字符串,奈何C/C++中没有原生的方法可供调用,只能使用第三方库,搜了一圈资料发现都不好用。刚好项目中用的Qt,瞬间想到了Qt中提供的各种各样的函数,去仔细查了一下Qt中提供的函数——QXmlStreamReader,真救命稻草,几行代码就搞定了我的需求。

QXmlStreamReader简单介绍

自QT4.3版本开始,QT提供了两个新类来读写XML:QXmlStreamReader 和 QXmlStreamWriter。顾名思义,QXmlStreamReader用于读取XML,QXmlStreamWriter用于写入XML。这两个类都使用流的方式操作xml,比起使用DOM和SAX解析xml,这是最快最方便的操作xml的方法。

使用QXmlStreamReader

添加头文件

假设有如下xml字符串,解析获取其中name、attr1、attr2的值
在这里插入图片描述
使用QXmlStreamReader只需要简单的几行代码就能搞定

QString xml = R"(<?xml version='1.0' encoding='UTF-8'?><featureinfo><features><feature name='a' attr1='100' attr2='10' /><feature name='b' attr1='200' attr2='20' /><feature name='c' attr1='300' attr2='30' /></features></featureinfo>)";// 1、初始化QXmlStreamReaderQXmlStreamReader reader(xml);while(!reader.atEnd() && !reader.hasError()) {// 2、使用readNext读取下一行QXmlStreamReader::TokenType token = reader.readNext();if (token == QXmlStreamReader::StartElement) { // 判断是否为xml开始标签,即左边的<if (reader.name() == "feature") { // 标签名称qDebug() << "name:" << reader.attributes().value("name").toString() << " attr1:" << reader.attributes().value("attr1").toInt() << " attr2:" << reader.attributes().value("attr2").toInt();}}}

最后调用attributes()方法获取对应的属性值即可。需要注意的是,reader.attributes().value(“name”).toString()还是toInt(),需要根据实际数据类型来确定,字符串就选toString,整数就选toInt。区别如下:

toString()

qDebug() << "name:" << reader.attributes().value("name").toString() << " attr1:" << reader.attributes().value("attr1").toString() << " attr2:" << reader.attributes().value("attr2").toString();

在这里插入图片描述
可以看到输出的也是字符串类型。

toInt()

qDebug() << "name:" << reader.attributes().value("name").toString() << " attr1:" << reader.attributes().value("attr1").toInt() << " attr2:" << reader.attributes().value("attr2").toInt();

在这里插入图片描述
此处输出的是int类型。

完整代码

项目文件test.pro
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle

SOURCES += main.cpp
main.cpp

#include <iostream>
#include <QString>
#include <QXmlStreamReader>
#include <qDebug>using namespace std;int main()
{QString xml = R"(<?xml version='1.0' encoding='UTF-8'?><featureinfo><features><feature name='a' attr1='100' attr2='10' /><feature name='b' attr1='200' attr2='20' /><feature name='c' attr1='300' attr2='30' /></features></featureinfo>)";// 1、初始化QXmlStreamReaderQXmlStreamReader reader(xml);while(!reader.atEnd() && !reader.hasError()) {// 2、使用readNext读取下一行QXmlStreamReader::TokenType token = reader.readNext();if (token == QXmlStreamReader::StartElement) { // 判断是否为xml开始标签,即左边的<if (reader.name() == "feature") { // 标签名称qDebug() << "name:" << reader.attributes().value("name").toString() << " attr1:" << reader.attributes().value("attr1").toInt() << " attr2:" << reader.attributes().value("attr2").toInt();//qDebug() << "name:" << reader.attributes().value("name").toString() << " attr1:" << reader.attributes().value("attr1").toString() << " attr2:" << reader.attributes().value("attr2").toString();}}}return 0;
}
http://www.yayakq.cn/news/303953/

相关文章:

  • 给网站做选题网络推广培训哪里好
  • 一个公网ip可以做几个网站写作网站六大神书
  • 娄底手机网站制作WordPress网站积分系统
  • html前端网站开发建设网站英文翻译
  • 建设网站需要的技术怎么做网页快
  • 云南省建设厅定额网站温州网站的优化
  • wordpress调用网站标题平台优化方案
  • php手机网站制作百度seo优化是什么
  • 在线推广企业网站的方法有闵行交大网站建设
  • 网站备案要啥设计网站酷
  • 做网站淮南商城网站建设哪家效益快
  • 用c 做网站可以吗因脉网站建设公司怎么呀韩国
  • 如何做教育类网站北京seo优化外包
  • 医药公司网站建设wordpress自动锚文本
  • 陕西省城乡建设学校网站钢材网站建设
  • 加强专业建设的思路和建议免费seo排名网站
  • 个人做网站和百家号赚钱无锡制作网站
  • html5 特效网站免费建网站平台教
  • 上海建筑网站大全东莞网站建设专业品牌
  • h5网站制作工具中国做乱的小说网站
  • 南京做机床的公司网站整合营销传播最基础的形式是
  • 做网页和网站有什么区别吗wordpress的模板目录在哪里设置
  • wordpress 多站点错误高端饰品品牌有哪些
  • 温州网站建设托管网页就是一个网站的首页
  • 4435建站江苏 网站 备案
  • 官方网站建设建议初中生怎么升大专学历
  • 政务网站建设论文wap开头的网站
  • 国外网站搜索引擎优化方案wordpress 去除google
  • 网站建设策划书总结关于未备案网站
  • 整站seo富阳网站建设