精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C++ TinyXML使用心得總結

開發 后端
C++ TinyXML解析器可以被看做一個開源的XML解析庫。可以在多系統中進行編譯。我們在這里就為大家詳細介紹一下它的使用方法。

C++語言是一種應用非常廣泛的計算機應用編程語言。它支持多種程序設計風格,對程序員在實際開發中起了非常重要的作用。在這里我們先為大家介紹一個C++ XML解析器中叫做C++ TinyXML的解析器相關內容。

讀取和設置xml配置文件是最常用的操作,試用了幾個C++的XML解析器,個人感覺C++ TinyXML是使用起來最舒服的,因為它的API接口和Java的十分類似,面向對象性很好。

C++ TinyXML是一個開源的解析XML的解析庫,能夠用于C++,能夠在Windows或Linux中編譯。這個解析庫的模型通過解析XML文件,然后在內存中生成DOM模型,從而讓我們很方便的遍歷這棵XML樹。

DOM模型即文檔對象模型,是將整個文檔分成多個元素(如書、章、節、段等),并利用樹型結構表示這些元素之間的順序關系以及嵌套包含關系。

如下是一個XML片段:

  1. < Persons> 
  2. < Person ID="1"> 
  3. < name>周星星< /name> 
  4. < age>20< /age> 
  5. < /Person> 
  6. < Person ID="2"> 
  7. < name>白晶晶< /name> 
  8. < age>18< /age> 
  9. < /Person> 
  10. < /Persons> 

 

在C++ TinyXML中,根據XML的各種元素來定義了一些類:#t#

TiXmlBase:整個TinyXML模型的基類。

TiXmlAttribute:對應于XML中的元素的屬性。

TiXmlNode:對應于DOM結構中的節點。

TiXmlComment:對應于XML中的注釋

TiXmlDeclaration:對應于XML中的申明部分,即< ?versiong="1.0" ?>。

TiXmlDocument:對應于XML的整個文檔。

TiXmlElement:對應于XML的元素。

TiXmlText:對應于XML的文字部分

TiXmlUnknown:對應于XML的未知部分。

TiXmlHandler:定義了針對XML的一些操作。

C++ TinyXML是個解析庫,主要由DOM模型類(TiXmlBase、TiXmlNode、TiXmlAttribute、TiXmlComment、TiXmlDeclaration、TiXmlElement、TiXmlText、TiXmlUnknown)和操作類(TiXmlHandler)構成。它由兩個頭文件(.h文件)和四個CPP文件(.cpp文件)構成,用的時候,只要將(tinyxml.h、tinystr.h、tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp)導入工程就可以用它的東西了。如果需要,可以將它做成自己的DLL來調用。舉個例子就可以說明一切。。。

對應的XML文件:

  1. < Persons> 
  2. < Person ID="1"> 
  3. < name>phinecos< /name> 
  4. < age>22< /age> 
  5. < /Person> 
  6. < /Persons> 

 

讀寫XML文件的程序代碼:

  1. #include < iostream> 
  2. #include "tinyxml.h"  
  3. #include "tinystr.h"  
  4. #include < string> 
  5. #include < windows.h> 
  6. #include < atlstr.h> 
  7. using namespace std;  
  8. CString GetAppPath()  
  9. {//獲取應用程序根目錄  
  10. TCHAR modulePath[MAX_PATH];  
  11. GetModuleFileName(NULL, modulePath, MAX_PATH);  
  12. CString strModulePath(modulePath);  
  13. strModulePathstrModulePath = strModulePath.Left
    (strModulePath.ReverseFind(_T('\\')));  
  14. return strModulePath;  
  15. }  
  16. bool CreateXmlFile(string& szFileName)  
  17. {//創建xml文件,szFilePath為文件保存的路徑,若創建成功返回true,否則false  
  18. try  
  19. {  
  20. //創建一個XML的文檔對象。  
  21. TiXmlDocument *myDocument = new TiXmlDocument();  
  22. //創建一個根元素并連接。  
  23. TiXmlElement *RootElement = new TiXmlElement("Persons");  
  24. myDocument->LinkEndChild(RootElement);  
  25. //創建一個Person元素并連接。  
  26. TiXmlElement *PersonElement = new TiXmlElement("Person");  
  27. RootElement->LinkEndChild(PersonElement);  
  28. //設置Person元素的屬性。  
  29. PersonElement->SetAttribute("ID", "1");  
  30. //創建name元素、age元素并連接。  
  31. TiXmlElement *NameElement = new TiXmlElement("name");  
  32. TiXmlElement *AgeElement = new TiXmlElement("age");  
  33. PersonElement->LinkEndChild(NameElement);  
  34. PersonElement->LinkEndChild(AgeElement);  
  35. //設置name元素和age元素的內容并連接。  
  36. TiXmlText *NameContent = new TiXmlText("周星星");  
  37. TiXmlText *AgeContent = new TiXmlText("22");  
  38. NameElement->LinkEndChild(NameContent);  
  39. AgeElement->LinkEndChild(AgeContent);  
  40. CString appPath = GetAppPath();  
  41. string seperator = "\\";  
  42. string fullPath = appPath.GetBuffer(0) +seperator+szFileName;  
  43. myDocument->SaveFile(fullPath.c_str());//保存到文件  
  44. }  
  45. catch (string& e)  
  46. {  
  47. return false;  
  48. }  
  49. return true;  
  50. }  
  51. bool ReadXmlFile(string& szFileName)  
  52. {//讀取Xml文件,并遍歷  
  53. try  
  54. {  
  55. CString appPath = GetAppPath();  
  56. string seperator = "\\";  
  57. string fullPath = appPath.GetBuffer(0) +seperator+szFileName;  
  58. //創建一個XML的文檔對象。  
  59. TiXmlDocument *myDocument = new TiXmlDocument(fullPath.c_str());  
  60. myDocument->LoadFile();  
  61. //獲得根元素,即Persons。  
  62. TiXmlElement *RootElement = myDocument->RootElement();  
  63. //輸出根元素名稱,即輸出Persons。  
  64. cout < <  RootElement->Value() < <  endl;  
  65. //獲得第一個Person節點。  
  66. TiXmlElement *FirstPerson = RootElement->FirstChildElement();  
  67. //獲得第一個Person的name節點和age節點和ID屬性。  
  68. TiXmlElement *NameElement = FirstPerson->FirstChildElement();  
  69. TiXmlElement *AgeElement = NameElement->NextSiblingElement();  
  70. TiXmlAttribute *IDAttribute = FirstPerson->FirstAttribute();  
  71. //輸出第一個Person的name內容,即周星星;age內容,即;ID屬性,即。  
  72. cout < <  NameElement->FirstChild()->Value() < <  endl;  
  73. cout < <  AgeElement->FirstChild()->Value() < <  endl;  
  74. cout < <  IDAttribute->Value()< <  endl;  
  75. }  
  76. catch (string& e)  
  77. {  
  78. return false;  
  79. }  
  80. return true;  
  81. }  
  82. int main()  
  83. {  
  84. string fileName = "info.xml";  
  85. CreateXmlFile(fileName);  
  86. ReadXmlFile(fileName);  

C++ TinyXML解析器的相關使用方法就為大家介紹到這里。

責任編輯:曹凱 來源: 博客園
相關推薦

2009-08-28 10:08:15

C# using語句

2011-01-19 14:57:09

Thunderbird

2011-03-15 11:05:03

2009-06-19 11:09:27

Spring AOP

2010-02-05 16:46:58

C++ TinyXml

2010-06-01 13:42:37

TortoiseSVN

2009-08-31 10:00:07

C#靜態變量

2010-08-06 11:12:38

FlexCairngorm框架

2011-01-07 11:14:17

Nginx負載均衡負載均衡

2011-09-01 10:16:43

JQuery Mobi

2009-08-24 17:27:05

C#泛型應用

2009-06-26 16:12:08

ThickboxjQuery

2010-03-02 17:33:49

Android 2.0

2009-08-11 11:42:50

Ruby使用心得

2010-02-02 09:32:32

C++ typedef

2010-02-02 14:06:50

C++ const變量

2010-02-06 09:59:54

C++ void使用規

2011-04-20 13:59:28

愛普生V100掃描儀

2009-08-26 13:31:21

JavaScript使

2009-07-31 18:37:45

ASP.NET MVC
點贊
收藏

51CTO技術棧公眾號

国产在线乱码一区二区三区| 欧美老女人另类| 亚洲国产欧美在线| 国产精品一区二区三区四区五区| 女人十八岁毛片| 日韩精品水蜜桃| 日韩精品一区二区三区在线观看| 国产精品裸体瑜伽视频| 川上优的av在线一区二区| 激情丁香综合五月| 亚州成人av在线| 免费黄色激情视频| 欧美天堂社区| 3d动漫精品啪啪一区二区竹菊| 亚洲理论电影在线观看| a天堂在线资源| jlzzjlzz国产精品久久| 国产日韩欧美日韩大片| 日韩色图在线观看| 欧美性色综合| 深夜福利日韩在线看| 国产 中文 字幕 日韩 在线| 欧美视频精品| 色综合激情久久| 大西瓜av在线| 韩国av网站在线| 国产日韩欧美激情| 国产一区二区高清视频| 国产绿帽一区二区三区| 视频一区视频二区在线观看| 久久久久久国产精品三级玉女聊斋 | 亚洲欧美高清| 欧美大片第1页| 久久精品一区二区三区四区五区| 久久av资源| 日韩成人中文字幕在线观看| 国产精品91av| 激情综合婷婷| 9191精品国产综合久久久久久 | 国模一区二区| 欧美色videos| 国产一区二区在线视频播放| 欧美女同一区| 一区二区三区精品| www.-级毛片线天内射视视| 99青草视频在线播放视| 国产午夜一区二区三区| 欧美成ee人免费视频| 免费的黄色av| 成人高清视频在线观看| av蓝导航精品导航| 亚洲av永久纯肉无码精品动漫| 精品一区二区免费| 国产欧美亚洲精品| 在线观看免费观看在线| 久久精品国产久精国产| 国产精品综合不卡av| 中文人妻熟女乱又乱精品| 久久一二三四| 国产精品美女久久久久av超清| 日韩国产成人在线| 日本伊人午夜精品| 国产精品香蕉国产| 97精品人妻一区二区三区在线 | 国产二级一片内射视频播放| av日韩精品| 亚洲国产精品成人av| 中文成人无字幕乱码精品区| 日韩成人午夜| 一本久久综合亚洲鲁鲁| 影音先锋制服丝袜| 久久久久美女| 欧美激情亚洲自拍| 欧美不卡视频在线观看| 麻豆久久精品| 国产精品美女免费| 国产不卡精品视频| 99国内精品久久| 天天人人精品| 50度灰在线| 狠狠色噜噜狠狠狠狠97| 熟女少妇精品一区二区| 99视频有精品高清视频| 亚洲第一国产精品| 精品人妻一区二区三区蜜桃视频| 久久影院100000精品| 精品少妇v888av| 91porny在线| 蜜臀va亚洲va欧美va天堂| 亚洲自拍中文字幕| 亚洲av成人精品毛片| 欧美国产日韩一二三区| 中文字幕乱码免费| 一级毛片久久久| 678五月天丁香亚洲综合网| 女女调教被c哭捆绑喷水百合| 日本天堂一区| 久久久国产成人精品| 国产成人亚洲精品自产在线| 麻豆精品一区二区三区| 国产伦精品一区二区三区照片| 国产三级视频在线看| 一个色综合网站| 久久综合久久色| 中文字幕日韩在线| 正在播放亚洲1区| 国产亚洲精品久久久久久打不开| 日韩高清不卡一区二区三区| 亚洲xxx大片| 国产片在线观看| 午夜精品一区二区三区免费视频| 日本久久久久久久久久久久| 成人性生交大片免费看96| 在线观看国产精品日韩av| 一级aaa毛片| 国内精品免费**视频| 免费精品视频一区| 激情网站在线| 欧美精品1区2区| 久操视频免费看| 精品电影一区| 51成人做爰www免费看网站| 二区三区在线| 欧美日韩一区二区免费在线观看| 4438x全国最大成人| 三区四区不卡| 国产精品高潮呻吟视频| 亚洲av片在线观看| 亚洲成人福利片| 亚洲精品乱码久久久久久9色| 日本电影一区二区| 国产不卡在线观看| 日韩av高清在线| 天天操天天综合网| 成人区人妻精品一区二| 欧美激情五月| 999国内精品视频在线| 免费av网站在线看| 欧美顶级少妇做爰| 黑人と日本人の交わりビデオ| 久久久蜜桃一区二区人| 玛丽玛丽电影原版免费观看1977| 成av人片在线观看www| 欧美成人欧美edvon| 成熟的女同志hd| 国产一区二区在线电影| 黄色小视频大全| 国产亚洲观看| 欧美另类在线观看| а√天堂资源在线| 亚洲香蕉伊在人在线观| 一区二区三区四区影院| 亚洲无线视频| 国产日本一区二区三区| 日本在线啊啊| 亚洲人成在线观看| 中文亚洲av片在线观看| 国产精品三级在线观看| 成人综合久久网| 综合激情婷婷| 官网99热精品| 亚洲天堂电影| 在线观看国产精品日韩av| 夜夜躁狠狠躁日日躁av| 亚洲欧美电影院| 国产人妻精品午夜福利免费| 亚洲全部视频| 日韩aⅴ视频一区二区三区| 欧美大片1688网站| 日韩在线播放av| 超碰人人人人人人| 欧美日韩国产一区中文午夜| 97超碰在线资源| 老司机免费视频一区二区三区| 熟女视频一区二区三区| 深夜激情久久| 青青青国产精品一区二区| 成人在线观看网站| 日韩小视频在线观看专区| 黄色激情视频在线观看| 国产亚洲欧美在线| 欧美性受xxxx黒人xyx性爽| 91久久综合| 亚洲精品日韩精品| 一区二区三区四区精品视频| 5252色成人免费视频| 欧美成人三区| 日韩av中文字幕在线| 中文字幕永久在线视频| 亚洲一区二区高清| 男生草女生视频| 国产激情视频一区二区三区欧美| 日本福利视频在线| 久久性感美女视频| 精品亚洲欧美日韩| 在线观看欧美| 日韩免费在线观看视频| 成人免费网站在线观看视频| 亚洲免费一级电影| 国产成人av免费看| 欧美日韩一区在线观看| 日韩福利片在线观看| 自拍偷拍欧美精品| 国产高清自拍视频| 国产高清成人在线| 91插插插插插插插插| 99国产精品| 亚洲区成人777777精品| 成人免费av| 精品欧美一区二区在线观看视频| 9999精品视频| 国产精品va在线| 国产福利电影在线播放| 美女少妇精品视频| 色多多视频在线观看| 亚洲精品丝袜日韩| 狠狠综合久久av一区二区| 欧美久久婷婷综合色| 中文字幕免费观看| 精品国产91久久久久久| 欧美精品入口蜜桃| 亚洲欧洲精品一区二区三区| 无码人妻精品一区二区中文| 国产成人综合在线播放| 青青草原国产在线视频| 日韩国产成人精品| 国产a视频免费观看| 日韩一级网站| 欧美男女爱爱视频| 欧美视频亚洲视频| 在线观看成人免费| 93在线视频精品免费观看| 欧美精彩一区二区三区| 日韩深夜影院| 精品国产乱码一区二区三区四区| 中文字幕区一区二区三| 99精品99久久久久久宅男| 国产精品视频首页| 国产一区二区色| 欧洲亚洲精品久久久久| 国产精品尤物福利片在线观看| 欧美动物xxx| 日韩免费在线免费观看| 国精产品一区二区三区有限公司 | 韩日视频在线观看| 国产精品二区影院| av一区二区三区免费观看| 午夜天堂精品久久久久| 成人小视频在线观看免费| 国内精品久久久久国产盗摄免费观看完整版 | 亚洲午夜电影网| 国产精品美女毛片真酒店| 亚洲不卡一区二区三区| 亚洲日本韩国在线| 色噜噜偷拍精品综合在线| 人妻 日韩精品 中文字幕| 一本一道久久a久久精品综合蜜臀| 久久一区二区三区视频| 欧美小视频在线| 天天综合久久综合| 欧美日韩在线播| 国产黄色大片网站| 欧美成人激情免费网| 国产成人手机在线| 日韩精品免费看| 大片免费播放在线视频| 久久精品中文字幕免费mv| 色呦呦呦在线观看| 51视频国产精品一区二区| 人人鲁人人莫人人爱精品| 国产精品亚洲欧美导航| 欧美视频三区| 精品欧美日韩在线| 日韩理论片av| 日韩在线观看a| 美女精品一区| 亚洲天堂av一区二区| 国产成人av影院| 9.1成人看片免费版| 中文字幕一区免费在线观看| 久久精品一级片| 色94色欧美sute亚洲13| 国产精品一区二区人人爽| 精品国产sm最大网站免费看| 极品美乳网红视频免费在线观看| 久久精品99久久香蕉国产色戒| av影视在线| 国产精品一区二区三区在线播放| 日本亚洲视频| 色一情一乱一伦一区二区三区丨| 在线中文字幕亚洲| 中文字幕无码精品亚洲35| 六月婷婷色综合| 手机免费看av片| 国产精品二三区| 国产精品第9页| 91精品国产免费久久综合| 亚洲人视频在线观看| 中文字幕亚洲综合| 色偷偷偷在线视频播放| 96精品久久久久中文字幕| 九九热精品视频在线观看| 蜜臀av.com| 免费看日韩精品| 亚洲观看黄色网| 亚洲女人的天堂| 中文字幕精品无码一区二区| 日韩一区二区免费高清| 国产h在线观看| 欧美又大又硬又粗bbbbb| 欧美第一在线视频| 亚洲欧洲一二三| 久久精品官网| 男男一级淫片免费播放| 亚洲视频在线观看三级| 欧美性猛交xxxx乱大交hd| 亚洲第一男人天堂| 69xxx在线| 91视频国产精品| 日本欧美肥老太交大片| 久久精品免费一区二区| 成人久久视频在线观看| 亚洲国产美女视频| 欧美天堂亚洲电影院在线播放| 四虎影视在线播放| 国产+人+亚洲| 一区二区三区视频播放| 久久福利一区二区| 国内精品国产成人| 91大神福利视频| 欧美四级电影网| 成人欧美一区| 国产精品电影在线观看| 美女毛片一区二区三区四区最新中文字幕亚洲 | 欧美福利第一页| 日韩欧美在线视频免费观看| 天堂中文在线看| 97香蕉久久夜色精品国产| 波多野结衣在线一区二区| 国产aaa免费视频| www.在线成人| 91视频免费网址| 日韩久久免费电影| 国产精品迅雷| 日韩av在线电影观看| 视频一区二区欧美| 国产又黄又粗视频| 精品污污网站免费看| 波多野结衣在线影院| 国产精品久久久久久久久久久久久久| 久久99久久人婷婷精品综合| 亚洲中文字幕久久精品无码喷水| 久久这里只有精品6| 波多野结衣视频在线观看| 在线看片第一页欧美| 六九午夜精品视频| 99精品一级欧美片免费播放| 国产99久久精品| 日韩特黄一级片| 亚洲欧美中文日韩在线v日本| 国产综合色区在线观看| 亚洲欧美日产图| 国产裸体歌舞团一区二区| 免费一级片视频| 亚洲精品国精品久久99热| 久久99久久99精品免观看软件| 天堂资源在线亚洲资源| 国产美女av一区二区三区| 国产一级性生活| 亚洲欧美日韩成人| 欧美天堂在线| 国产成人永久免费视频| 久久久久九九视频| 国产精品毛片久久久久久久av| 欧美人与性动交| 亚洲aaa级| 蜜臀一区二区三区精品免费视频 | 一级片在线观看视频| 欧美成人激情在线| 亚洲精品国产动漫| 国产福利在线免费| 亚洲aⅴ怡春院| 成全电影播放在线观看国语| 波多野结衣一区二区三区在线观看| 国产一区白浆| 日本中文在线视频| 精品香蕉一区二区三区| 日日狠狠久久| 欧美亚洲一二三区| 专区另类欧美日韩| 精品无人乱码| 亚洲最大av在线| 亚洲永久在线| 国产va在线播放| 国产亚洲精品美女| 一区二区三区在线免费看| 9l视频白拍9色9l视频| 亚洲韩国一区二区三区| 在线观看免费黄视频| 激情小说综合区|