成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

體驗TinyXML讀寫XML文件數據

開發
今天我們將談到如何學習TinyXML,主要是要理解其節點的層次關系,通曉其筋脈,則運用自如。

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

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

  要讀取的xml 數據如下:

  1.   <?xml version="1.0" encoding="gb2312" standalone="yes" ?> 
  2.   <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
  3.   <prop> 
  4.   <id>100</id> 
  5.   <title>test 1</title> 
  6.   </prop> 
  7.   <prop> 
  8.   <id>200</id> 
  9.   <title>test 2</title> 
  10.   </prop> 
  11.   </root> 

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

  寫入中文沒問題, 但在讀出該中文時卻有異常,把后面的 </ 符號也當作值讀出來

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

  1.   string filefullPath = 要讀取xml文件的絕對路徑  
  2.   //創建文件對象  
  3.   TiXmlDocument * myDocument = new TiXmlDocument(filefullPath.c_str());  
  4.   //加載文件數據  
  5.   myDocument->LoadFile();  
  6.   //獲取根節點  
  7.   TiXmlElement *RootElement = myDocument->RootElement(); 

  以下是簡單的讀取操作:

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

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

  1.   //創建節點對象  
  2.   TiXmlElement *PersonElement = new TiXmlElement("prop");  
  3.   //鏈接到根節點  
  4.   RootElement ->LinkEndChild(PersonElement);  
  5.   //創建節點對象的屬性節點  
  6.   TiXmlElement *IdElement = new TiXmlElement("id");  
  7.   TiXmlElement *TitleElement =new TiXmlElement("title");  
  8.   //將屬性節點鏈接到子節點  
  9.   PersonElement->LinkEndChild(IdElement);  
  10.   PersonElement->LinkEndChild(TitleElement);  
  11.   //創建屬性對應數值對象  
  12.   TiXmlText *idContent = new TiXmlText("300");  
  13.   TiXmlText *titleContent = new TiXmlText("test3");  
  14.   //將數值對象關聯到屬性節點  
  15.   IdElement->LinkEndChild(idContent);  
  16.   TitleElement->LinkEndChild(titleContent);  
  17.   //保存到文件  
  18.   myDocument->SaveFile(m_filefullPath.c_str()); 

  以下是刪除記錄操作,例如要刪除id為300 的記錄:

  1.   //獲取當前要刪除的節點  
  2.   TiXmlElement * childElement = 根據id從自己讀取時緩存的數據中獲得  
  3.   //從根節點移除子節點  
  4.   RootElement->RemoveChild(childElement);  
  5.   //保存文件  
  6.   myDocument->SaveFile(m_filefullPath.c_str()); 

  學習TinyXML主要是要理解其節點的層次關系,通曉其筋脈,則運用自如。

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

【編輯推薦】

  1. XML之父解讀未來互聯網"游戲化"的三個真諦
  2. Ajax和Web服務數據格式:XML SOAP HTML
  3. 超強解析XML——簡單直接的來
  4. 解析PHP中的XML數據
  5. 大話HTML DOM與XML DOM的區別與聯系
責任編輯:彭凡 來源: 博客園
相關推薦

2013-06-09 10:04:35

Android開發XML讀寫XML解析

2013-06-09 12:49:15

Android開發XML讀寫XML解析

2013-06-09 12:53:05

Android開發XML讀寫XML解析

2013-06-09 13:07:23

Android開發XML讀寫XML解析

2013-06-09 10:18:29

Android開發XML讀寫XML解析

2013-06-09 10:25:56

Android開發XML讀寫XML解析

2013-06-09 10:37:53

Android開發XML讀寫XML解析

2013-06-09 11:31:13

Android開發XML讀寫XML解析

2011-04-06 13:56:36

Delphi

2010-01-13 13:57:09

CentOS vsft

2021-11-11 23:16:33

前端數據格式Web

2010-04-16 14:39:45

Oracle數據庫

2009-12-09 09:55:39

ibmdwSpring

2011-10-11 17:07:12

數據庫Internet文件數據庫

2010-02-05 16:46:58

C++ TinyXml

2021-02-26 20:55:56

JavaNIO隨機

2021-08-05 10:00:02

Python編程語言

2009-12-18 15:16:49

Ruby on Rai

2010-05-24 14:02:06

MySQL數據庫

2010-02-01 10:15:07

C++ TinyXML
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区在线不卡 | 91精品国产91久久久久久密臀 | 精品一区二区免费视频 | 在线日韩福利 | 久久精品国产免费一区二区三区 | 国产亚洲一区二区三区在线观看 | 一级a爱片性色毛片免费 | 日本精品一区二区三区在线观看视频 | 成人免费在线小视频 | www.日韩| 国产精品无码久久久久 | 欧美综合一区二区三区 | 免费成人在线网 | 一区二区三区高清在线观看 | 日本高清不卡视频 | 狠狠操婷婷 | 日韩色在线 | 国产三级精品三级在线观看四季网 | 国产女人与拘做受视频 | 91在线一区二区三区 | 国产成人精品综合 | 国产丝袜一区二区三区免费视频 | 紧缚调教一区二区三区视频 | 午夜一区二区三区视频 | 日韩精品一区二区三区在线观看 | 精品国产乱码久久久久久丨区2区 | 全免费a级毛片免费看视频免 | 亚洲v日韩v综合v精品v | 91精品在线播放 | 在线看日韩av | 亚洲三区视频 | 精品一区二区三区四区外站 | 精品美女视频在线观看免费软件 | 亚洲欧美中文日韩在线v日本 | 日韩2020狼一二三 | 国产精品午夜电影 | 久久免费观看视频 | 精品国产色 | 日本成人中文字幕 | 国产成人91| 91视频在线看 |