最近用QT在做一個項目,需要存儲設(shè)備信息。
成都創(chuàng)新互聯(lián)是一家以重慶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、品牌設(shè)計、軟件運維、營銷推廣、小程序App開發(fā)等移動開發(fā)為一體互聯(lián)網(wǎng)公司。已累計為廣告設(shè)計等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。deviceInfo.h文件: #include#include #include #include #include #include #include #include #include class devicesInfo { // Q_OBJECT public: devicesInfo(); ~devicesInfo(); private: QDomDocument doc; QString fileName; //內(nèi)部接口 private: void readXmlFile(); //讀取xml文件 //外部接口 public: //獲得ip地址的設(shè)備信息 void getADeviceInfo(QString ip,QVector &deviceInfoVec); //刷新設(shè)備信息到xml文件中 void updateDeviceInfoXml(QString ip,QVector &deviceInfoVec); }; deviceInfo.cpp文件: devicesInfo::devicesInfo(){ fileName = "devices.xml"; } devicesInfo::~devicesInfo() { } void devicesInfo::getADeviceInfo(QString ip, QVector &deviceInfoVec){ //xml文件讀到內(nèi)存 readXmlFile(); //讀取內(nèi)存中的設(shè)備信息 //獲取根節(jié)點 QDomElement root = doc.documentElement(); QString tempInfo; QDomNode deviceNode = root.firstChild(); for( ; !deviceNode.isNull(); deviceNode = deviceNode.nextSibling()){ if(deviceNode.isElement()){ QDomElement element = deviceNode.toElement(); QDomNodeList deviceInfoList = element.childNodes(); QString ipAdress = deviceInfoList.at(0).toElement().text(); if(ipAdress != ip){ //ip地址不匹配,則進入下次循環(huán) continue ; } //ip地址匹配,則把相應(yīng)的設(shè)備信息放到vector中 for(int i=1; i void devicesInfo::updateDeviceInfoXml(QString ip, QVector&deviceInfoVec){ //讀取xml文件到內(nèi)存 readXmlFile(); //更新內(nèi)存中的設(shè)備信息 //獲取根節(jié)點 QDomElement root = doc.documentElement(); QStringList tempInfoList; QDomNode deviceNode = root.firstChild(); //記錄每個設(shè)備中的屬性信息是否成功更新,如果沒有更新成功,則需要增加一個設(shè)備屬性,默認是沒有更新 bool updateAttrInfoBool; //xml中這次需要更新的每個設(shè)備屬性對應(yīng)一個bool值,這次用戶更新的設(shè)備信息中仍有該屬性則true,否則false QVector xmlDeviceInfoBoolVec; qDebug() << "in update function:" << endl; //順利遍歷,尋找相應(yīng)的ip地址,更新其中的設(shè)備信息 for( ; !deviceNode.isNull(); deviceNode = deviceNode.nextSibling()){ if(deviceNode.isElement()){ QDomElement deviceElement = deviceNode.toElement(); QDomNodeList deviceInfoList = deviceElement.childNodes(); QString ipAdress = deviceInfoList.at(0).toElement().text(); if(ipAdress != ip){ //ip地址不匹配,則跳出本循環(huán),進入下次循環(huán) qDebug() << "xml 中的 ip:" << ipAdress << " out." << endl; continue ; } //ip地址匹配 //xml中的該匹配設(shè)備每個屬性設(shè)置一個對應(yīng)的 bool 值,并且默認是false for(int i=0; i 另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)站名稱:QTxml讀寫-創(chuàng)新互聯(lián)
標題路徑:http://weahome.cn/article/egcjp.html