精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

最近在线中文字幕| 西西人体44www大胆无码| 亚洲国产老妈| 亚洲国产精品高清久久久| 黄在线观看网站| 色综合久久久久综合一本到桃花网| 精品亚洲porn| 欧美亚洲第一页| 成年人二级毛片| 视频福利一区| 欧美一二三四在线| 国产亚洲天堂网| 直接在线观看的三级网址| 久久综合九色欧美综合狠狠 | 亚洲精品短视频| 三级a三级三级三级a十八发禁止| 激情网站在线| 国产精品美女视频| 精品一区二区国产| 国产女人18毛片水18精| 久久男女视频| 欧美激情一区二区三区高清视频| 日韩黄色中文字幕| 国产精品成人自拍| 91精品国产麻豆| 凹凸日日摸日日碰夜夜爽1| 色老头在线观看| 国产精品国产三级国产aⅴ原创| 狠狠久久综合婷婷不卡| 国产草草影院ccyycom| 日韩avvvv在线播放| 久久久久久尹人网香蕉| 91n在线视频| 欧美亚洲高清| 亚洲欧美日韩一区二区在线| 日本三级日本三级日本三级极| av在线亚洲一区| 91九色02白丝porn| 欧美午夜精品久久久久免费视| www.av在线.com| 久久精品国产一区二区三 | 国产成人在线视频网址| 国产精品激情av电影在线观看 | 波多野结依一区| 亚洲三级在线观看| 手机成人av在线| 91啦中文在线| 中文字幕第一区第二区| 日本黑人久久| 九色视频在线播放| 91亚洲精品久久久蜜桃| 精品国产免费一区二区三区| 亚洲美女综合网| 国产不卡视频在线播放| 97自拍视频| 精品人妻一区二区三区换脸明星| 国产一区中文字幕| 92看片淫黄大片看国产片| 国产伦理吴梦梦伦理| 麻豆成人综合网| 国产在线精品成人一区二区三区| 亚洲天堂手机在线| 麻豆精品一区二区三区| 国产欧美在线观看| 97在线公开视频| 国产美女在线观看一区| 亚洲最大的网站| 乱色精品无码一区二区国产盗| 成人av在线资源| 蜜桃av噜噜一区二区三| 激情小视频在线观看| 欧美激情在线观看视频免费| 宅男一区二区三区| 色婷婷av在线| 欧美视频在线观看 亚洲欧| 精品一卡二卡三卡| 精品久久毛片| 日韩女优电影在线观看| 亚洲久久久久久| 精品国产中文字幕第一页| 中日韩午夜理伦电影免费| 亚洲色图27p| 欧美jjzz| 日韩av片电影专区| 国产又粗又猛又黄又爽无遮挡| 国产一区二区三区观看| 国内精品视频免费| 国产精品一二三区视频| 亚洲视频在线一区二区| 久久久久免费看黄a片app| 欧美成人影院| 日韩一区二区三区电影在线观看| 在线免费看黄色片| 欧洲杯半决赛直播| 欧美夫妻性生活xx| 国产污视频网站| 国产乱码字幕精品高清av| 精品久久蜜桃| 日本中文字幕视频在线| 午夜激情一区二区| 亚洲免费999| 精品国产一区二区三区不卡蜜臂| 国产一区二区三区在线观看网站 | 国产欧美一区二区三区久久人妖| 成人乱码一区二区三区 | 就去色蜜桃综合| 国产在线高清视频| 色久优优欧美色久优优| wwwww在线观看| 日韩大片在线| 欧美尤物巨大精品爽| 国产乱码久久久久| 国产午夜亚洲精品不卡| 超碰成人免费在线| 四虎精品永久免费| 亚洲色图综合久久| 日本熟妇一区二区| 国产一区二区精品久久| 日本一区免费在线观看| av影片在线| 日韩一区二区三区在线视频| 91在线无精精品白丝| 在线欧美不卡| 亚洲最大福利视频| 人人干在线视频| 91黄色免费网站| 人妻熟女aⅴ一区二区三区汇编| 中文成人激情娱乐网| 日韩激情视频在线| 久草成人在线视频| 久久国产精品色婷婷| 欧美日韩一区在线播放| 高潮在线视频| 亚洲精品一区在线观看| 中文字幕av免费在线观看| 麻豆91在线播放| 日韩中文不卡| 中文字幕乱码在线播放| 亚洲精品国产拍免费91在线| 国产在线视频卡一卡二| 国产乱码精品1区2区3区| 伊人情人网综合| 久久夜夜久久| 日韩专区中文字幕| 中文无码精品一区二区三区| 日本一区二区综合亚洲| 超碰在线97免费| 国产精品最新| 国产精品高精视频免费| 第一福利在线| 欧美三级电影精品| 日韩欧美视频免费观看| 免费成人在线网站| 亚洲永久激情精品| 日韩伦理一区二区| 久久久精品国产亚洲| 国产美女免费视频| 一区二区三区四区在线播放 | 日韩视频在线免费| 国产精品伊人久久| 亚洲美女免费视频| 911亚洲精选| 亚洲精品社区| 日韩国产伦理| 婷婷丁香久久| 色综合男人天堂| 色噜噜一区二区三区| 欧美日韩国产综合新一区| 亚洲成人网在线播放| 天天射—综合中文网| 成人精品久久久| 毛片在线导航| 亚洲人成电影在线| 亚洲影院一区二区三区| 亚洲女爱视频在线| 久久性爱视频网站| 久久亚洲影院| 国产系列第一页| 999久久久久久久久6666| 2021国产精品视频| 成年人在线观看网站| 欧美丰满美乳xxx高潮www| 久久久久久久久久99| 91视频www| 亚洲一级片网站| 国产精品久久| 午夜精品视频在线观看一区二区| 白嫩亚洲一区二区三区| 国内精品一区二区三区| 激情小视频在线| 日韩精品一区二区三区在线观看 | 视频国产一区二区| 国产激情视频一区二区在线观看 | av动漫免费观看| 狠狠一区二区三区| 国产精品亚洲аv天堂网| 污影院在线观看| 国产亚洲一区二区在线| 精品久久人妻av中文字幕| 日韩欧美在线看| 玖玖爱这里只有精品| 久久人人爽人人爽| 日本中文字幕有码| 日韩**一区毛片| 97超碰在线人人| 久久日文中文字幕乱码| 久久国产精品高清| 国产一区二区三区国产精品| 日本不卡免费高清视频| 特级毛片在线| 中文字幕欧美日韩va免费视频| 天堂在线资源8| 日韩欧美中文字幕制服| 久久国产香蕉视频| 精品久久久视频| 天天看片中文字幕| 国产精品麻豆视频| 在哪里可以看毛片| 成人av在线电影| 一级黄色大片儿| 久久精品国产免费看久久精品| 亚洲色欲综合一区二区三区| 亚洲另类视频| 妞干网在线观看视频| 亚洲字幕久久| 国产福利片一区二区| 精品国产成人| 欧美日韩在线一二三| 成人三级毛片| av色综合网| 精品视频国内| 91在线色戒在线| 四虎影视国产精品| 国产美女高潮久久白浆| se69色成人网wwwsex| 欧洲午夜精品久久久| 偷拍自拍在线看| 91黑丝高跟在线| 黄色aa久久| 国内伊人久久久久久网站视频| 色黄网站在线观看| 久久91亚洲精品中文字幕奶水| 免费黄色网址在线观看| 日韩一级裸体免费视频| 爱久久·www| 色妞色视频一区二区三区四区| 国产经典自拍视频在线观看| 亚洲区中文字幕| 国产专区在线| 在线观看欧美日韩国产| 99青草视频在线播放视| 尤物yw午夜国产精品视频明星| 国产一级在线| 色诱女教师一区二区三区| av在线中文| www日韩中文字幕在线看| 日本高清中文字幕在线| 久久精品国产免费观看| 成人看片免费| 久久久久久久一区二区| av漫画网站在线观看| 4438全国成人免费| 欧美日韩电影免费看| 国产欧美久久久久久| 欧美专区视频| 精品免费一区二区三区蜜桃| 奇米狠狠一区二区三区| 水蜜桃一区二区三区| 亚洲一区在线| 欧美国产激情视频| 日韩国产精品久久久| 制服丝袜中文字幕第一页 | 91大神xh98hx在线播放| 两个人的视频www国产精品| 色av手机在线| 欧美专区中文字幕| 日韩午夜电影免费看| 成人动漫在线视频| 亚洲自拍电影| 午夜啪啪免费视频| 亚洲福利久久| 亚洲黄色av网址| 高清不卡在线观看| 91网站免费视频| 亚洲色图视频免费播放| 国产污污视频在线观看| 在线亚洲免费视频| 精品国产av 无码一区二区三区 | 黄色录像a级片| 中日韩免费视频中文字幕| 久久亚洲AV无码| 在线欧美小视频| 亚洲精品久久久久久久久久| 亚洲人成电影网| 日本中文字幕中出在线| 日韩av电影手机在线| 国产亚洲高清在线观看| 欧美国产一区二区在线| 欧美 日韩 国产一区二区在线视频 | zjzjzjzjzj亚洲女人| 国产亚洲一区二区三区| 丰满少妇高潮久久三区| 日本韩国欧美三级| 亚洲国产精品久久久久久6q| 伊人亚洲福利一区二区三区| 美女尤物在线视频| 国产精品综合不卡av| 亚洲欧美成人vr| 丁香色欲久久久久久综合网| 日韩经典一区二区| 欧美日韩一区二区三区四区五区六区| 国产精品热久久久久夜色精品三区 | 国产精品一区二区3区| 国偷自产av一区二区三区| 天天综合中文字幕| 国产乱码精品| 国产在线观看免费播放| 中文字幕中文字幕中文字幕亚洲无线| 国产成人自拍视频在线| 日韩精品专区在线影院观看| 米奇777四色精品人人爽| 国产aaa精品| 日韩三级视频| 男女激情免费视频| 国产精品中文字幕一区二区三区| 黄色一级片一级片| 日本韩国视频一区二区| 日韩一区av| 高清欧美性猛交xxxx黑人猛交| 欧美午夜网站| dy888午夜| 国产自产高清不卡| 久久精品国产亚洲AV成人婷婷| 91国在线观看| 国产在线一二三区| 日韩免费在线看| 免费av一区| 18岁视频在线观看| 久久综合久久综合久久综合| 欧美成人精品欧美一级乱黄| 精品国产一区二区三区不卡| 亚洲奶水xxxx哺乳期| 亚洲最大成人网色| 中文在线日韩| 在线观看免费看片| 亚洲欧美aⅴ...| 国产三级视频在线播放| 久久躁日日躁aaaaxxxx| 精品国产亚洲一区二区三区大结局| 一区二区在线高清视频| 久久精品国产99国产精品| 亚洲天堂av中文字幕| 欧美人伦禁忌dvd放荡欲情| 日本三级视频在线观看| 成人日韩在线电影| 婷婷精品进入| 无码人妻丰满熟妇啪啪网站| 亚洲成va人在线观看| 亚洲欧美日韩成人在线| 日本久久亚洲电影| 欧美精品一二| 加勒比av中文字幕| 亚洲宅男天堂在线观看无病毒 | 国产丝袜视频一区| 午夜欧美激情| 日韩在线国产| 国产在线播放一区三区四| 青娱乐av在线| 日韩精品福利网站| 欧美成人精品三级网站| 亚洲一一在线| 国产成人小视频| 圆产精品久久久久久久久久久| 亚洲欧美中文日韩在线| 四虎国产精品永久在线国在线| 成人在线免费高清视频| 97精品电影院| 中文字幕人妻互换av久久| 久久久国产精品免费| 丁香婷婷成人| 中文字幕天天干| 亚洲综合色网站| 可以在线观看的黄色| 成人免费视频网址| 伊人久久大香线蕉av超碰演员| 色哟哟精品观看| 日韩一区二区在线看片| 欧美日韩大片| 国产爆乳无码一区二区麻豆| 久久久久国产精品人| a网站在线观看| 日韩免费av一区二区| 91精品亚洲| 国产精品扒开腿做爽爽| 777a∨成人精品桃花网| 亚洲啊v在线| 日韩视频在线免费播放| 久久日韩精品一区二区五区| 精品人妻av一区二区三区| 秋霞午夜一区二区|