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

网站应用软件怎么架设数据可视化

网站应用软件怎么架设,数据可视化,陕西建设网最新消息,网页制作学什么内容文章目录 背景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/802988/

相关文章:

  • 织梦网站主页地址更改武进网站建设好么
  • 淘宝网站开始怎么做的现在市场最火的网店平台
  • 加强检察门户网站建设情况南通高端网站建设
  • 开服网站源码网站网站设计网站
  • 公司网站优化推广建设银行义乌分行网站
  • seo优秀网站分析甘肃省城乡城乡建设厅网站首页
  • 做puzzle的网站没有备案的网站百度不收录
  • 马鞍山网站设计价格wordpress支付接口同步回调
  • 景区官方网站建设方案网络营销课程主要讲什么内容
  • 嘉定企业网站开发建设河北省建设工程综合信息网
  • 做南美生意做什么网站好响应式布局和弹性布局的区别
  • 广州航海学院门户网站自己电脑做网站 带宽
  • 上饶市建设培训中心网站谷歌推广优化
  • 重庆微信网站代理商网站建设 图书
  • 做网站什么码网页设计与制作论文2000字
  • 精美驾校企业网站模板上海广告公司电话
  • 江苏自助建站平台wordpress首页title哪里修改
  • 无锡网站建设公司地址瓯北网站制作报价
  • 文章网站建设标志设计作业
  • 网站设计一般是什么专业个人网站设计与制作代码
  • 郑州网站建设公司有哪些ps 做网站切图
  • 怎么做网站的外链c2c代表平台有哪些
  • 查找网站注册时间wordpress 展开
  • 影响网站打开速度wordpress多城市seo
  • 服务器哪些端口可以做网站有没有做文创的网站
  • 菏泽市城乡和建设局网站网站ui设计师招聘
  • 什么公司做网站最好自己设计网页作业的感悟
  • 长春移动网站建设商会网站建设方案书
  • 求一个能用的网站如何刷seo关键词排名
  • 企业网站制作排名上海网页制作设计营销