赞
踩
项目的pro文件里面添加:
QT +=core xml
在路径C:\Users\Administrator\Desktop\ZGXIPCDemo中存放device.xml文件。内容以及各式如下:
使用qDebug()显示读取文件的内容
#include<QFile>
#include<QXmlStreamReader>
#include<QXmlStreamWriter>
#include<QDebug>
void query_dev_xml(QString dev_xml_dir); //查询xml,dev_xml_dir是xml文件的存放地址
//查询制定的.xml中相应信息,显示在终端 //dev_xml_dir .xml文件的存放地址 void devmanager::query_dev_xml(QString dev_xml_dir) //查询xml { QFile file(dev_xml_dir);// if(!file.open(QFile::ReadOnly|QFile::Text)) { qDebug()<<"cannot open file"; } else { qDebug()<<"file opened!"; } QXmlStreamReader reader; reader.setDevice(&file); while(!reader.atEnd()) { QXmlStreamReader::TokenType type =reader.readNext(); //根据记号的类型进行输出 if (type==QXmlStreamReader::StartElement) { qDebug()<<"start element:"<<reader.name()<<"reader.text:"<<reader.text(); if(reader.attributes().hasAttribute("id")) { qDebug()<<"has attribute device id="<<reader.attributes().value("id"); qDebug()<<"version"<<reader.attributes().value("version"); qDebug()<<"password: "<<reader.attributes().value("password"); qDebug()<<"username: "<<reader.attributes().value("username"); qDebug()<<"channelno: "<<reader.attributes().value("channelno"); qDebug()<<"port: "<<reader.attributes().value("port"); qDebug()<<"ip: "<<reader.attributes().value("ip"); qDebug()<<"type: "<<reader.attributes().value("type"); qDebug()<<"name: "<<reader.attributes().value("name"); qDebug()<<"id: "<<reader.attributes().value("id"); } else { qDebug()<<"element has no id"; } } if(type==QXmlStreamReader::EndElement) qDebug()<<" end element: "<<reader.name(); if (type==QXmlStreamReader::Characters&&!reader.isWhitespace()) qDebug()<<"Characters and is whitespace: "<<reader.text(); } file.close(); }
运行结果如下:
1、直接填写具体信息
void write_dev_xml(QString dev_xml_dir); //写入xml数据,其它设置同上
//将设备信息写入.xml文件中 //dev_xml_dir:.xml文件地址 devinfo:设备信息 void devmanager::write_dev_xml(QString dev_xml_dir)//, dev_info devinfo { QFile file(dev_xml_dir);// if(!file.open(QFile::WriteOnly|QFile::Text|QFile::Truncate)) { qDebug()<<"cannot open file to write"; } else { qDebug()<<"write file opened!"; } QXmlStreamWriter writer; // QXmlStreamReader reader; // QXmlStreamAttributes attributes; //QXmlStreamAttributes,而非QXmlStreamAttribute writer.setCodec("UTF-8"); writer
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。