日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
體驗(yàn)TinyXML讀寫XML文件數(shù)據(jù)

  前一陣子做一個(gè)客服回復(fù)玩家問題工具,要用到讀寫XML文件的數(shù)據(jù),同事推薦用TinyXML,于是,開始了我與TinyXML的親密之旅。

在康保等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需策劃設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,外貿(mào)營銷網(wǎng)站建設(shè),康保網(wǎng)站建設(shè)費(fèi)用合理。

  先簡單說說配置:首先下載TinyXML庫的文件,然后在 TinyXML 的目錄里面找到tinystr.h, tinyxml.h,tinystr.cpp,tinyxml.cpp, tinyxmlerror.cpp,tinyxmlparser.cpp六個(gè)文件加入到自己的項(xiàng)目中去,在相應(yīng)的工程文件中加入兩個(gè)頭文件 #include "tinyxml.h" ,#include "tinystr.h",在 tinystr.cpp,tinyxml.cpp, tinyxmlerror.cpp, tinyxmlparser.cpp四個(gè)文件的第一行加入頭文件 #include "stdafx.h",然后即可使用TinyXML編程。

  要讀取的xml 數(shù)據(jù)如下:

 
 
 
  1.    
  2.    
  3.    
  4.   100 
  5.   test 1 
  6.    
  7.    
  8.   200 
  9.   test 2 
  10.    
  11.    

  注意要將 encoding設(shè)為gb2312格式,我一開始設(shè)置的是utf-8,結(jié)果遇到在程序里

  寫入中文沒問題, 但在讀出該中文時(shí)卻有異常,把后面的

  了,后來和一同事討論后才知道是編碼問題。

 
 
 
  1.   string filefullPath = 要讀取xml文件的絕對(duì)路徑  
  2.   //創(chuàng)建文件對(duì)象  
  3.   TiXmlDocument * myDocument = new TiXmlDocument(filefullPath.c_str());  
  4.   //加載文件數(shù)據(jù)  
  5.   myDocument->LoadFile();  
  6.   //獲取根節(jié)點(diǎn)  
  7.   TiXmlElement *RootElement = myDocument->RootElement(); 

  以下是簡單的讀取操作:

 
 
 
  1.   //第一個(gè)子節(jié)點(diǎn)  
  2.   TiXmlElement *CurrentPerson = RootElement->FirstChildElement();  
  3.   //遍歷獲取指定節(jié)點(diǎn)數(shù)據(jù)  
  4.   while(CurrentPerson)  
  5.   {  
  6.   //子節(jié)點(diǎn)第一個(gè)屬性 id  
  7.   TiXmlElement *IdElement = CurrentPerson->FirstChildElement();  
  8.   //第一個(gè)屬性的值  
  9.   int nodeID = atoi(IdElement->FirstChild()->Value());  
  10.   //子節(jié)點(diǎn)第二個(gè)屬性 title  
  11.   TiXmlElement *TitleElement = IdElement->NextSiblingElement();  
  12.   //第二個(gè)屬性的值  
  13.   CString nodeTitle = TitleElement->FirstChild()->Value();  
  14.   .....................  
  15.   如果還有后續(xù)節(jié)點(diǎn),依次讀取  
  16.   .....................  
  17.   維護(hù)讀出的數(shù)據(jù)  
  18.   .....................  
  19.   //指向下一節(jié)點(diǎn)  
  20.   CurrentPersonCurrentPerson = CurrentPerson->NextSiblingElement();  
  21.   } 

  以下是增加xml記錄的操作,例如要增加 id 為 300,title 為 test3 的記錄:

 
 
 
  1.   //創(chuàng)建節(jié)點(diǎn)對(duì)象  
  2.   TiXmlElement *PersonElement = new TiXmlElement("prop");  
  3.   //鏈接到根節(jié)點(diǎn)  
  4.   RootElement ->LinkEndChild(PersonElement);  
  5.   //創(chuàng)建節(jié)點(diǎn)對(duì)象的屬性節(jié)點(diǎn)  
  6.   TiXmlElement *IdElement = new TiXmlElement("id");  
  7.   TiXmlElement *TitleElement =new TiXmlElement("title");  
  8.   //將屬性節(jié)點(diǎn)鏈接到子節(jié)點(diǎn)  
  9.   PersonElement->LinkEndChild(IdElement);  
  10.   PersonElement->LinkEndChild(TitleElement);  
  11.   //創(chuàng)建屬性對(duì)應(yīng)數(shù)值對(duì)象  
  12.   TiXmlText *idContent = new TiXmlText("300");  
  13.   TiXmlText *titleContent = new TiXmlText("test3");  
  14.   //將數(shù)值對(duì)象關(guān)聯(lián)到屬性節(jié)點(diǎn)  
  15.   IdElement->LinkEndChild(idContent);  
  16.   TitleElement->LinkEndChild(titleContent);  
  17.   //保存到文件  
  18.   myDocument->SaveFile(m_filefullPath.c_str()); 

  以下是刪除記錄操作,例如要?jiǎng)h除id為300 的記錄:

 
 
 
  1.   //獲取當(dāng)前要?jiǎng)h除的節(jié)點(diǎn)  
  2.   TiXmlElement * childElement = 根據(jù)id從自己讀取時(shí)緩存的數(shù)據(jù)中獲得  
  3.   //從根節(jié)點(diǎn)移除子節(jié)點(diǎn)  
  4.   RootElement->RemoveChild(childElement);  
  5.   //保存文件  
  6.   myDocument->SaveFile(m_filefullPath.c_str()); 

  學(xué)習(xí)TinyXML主要是要理解其節(jié)點(diǎn)的層次關(guān)系,通曉其筋脈,則運(yùn)用自如。

原文鏈接:http://www.cnblogs.com/skydesign/archive/2011/11/08/2240528.html

【編輯推薦】

  1. XML之父解讀未來互聯(lián)網(wǎng)"游戲化"的三個(gè)真諦
  2. Ajax和Web服務(wù)數(shù)據(jù)格式:XML SOAP HTML
  3. 超強(qiáng)解析XML——簡單直接的來
  4. 解析PHP中的XML數(shù)據(jù)
  5. 大話HTML DOM與XML DOM的區(qū)別與聯(lián)系

分享文章:體驗(yàn)TinyXML讀寫XML文件數(shù)據(jù)
當(dāng)前網(wǎng)址:http://www.dlmjj.cn/article/ccsgshg.html