TinyXML使用

一. 下载编译

到官网下载tinyxml_2_6_2.zip http://www.grinninglizard.com/tinyxml/ 

现在出了TinyXML2, 那里说2的效率会高一点

http://www.grinninglizard.com/tinyxml2/index.html

我下载的是tinyxml_2_6_2 编译需要VC2010, 由于我用的版本比2010所以我自己重新创建一个静态库工程编译不使用VC2010编译.

编译步骤:

A. 使用VC2008/2005 创建一个Win32静态库工程TinyXML中的tinystr.cpp;tinystr.h;tinyxml.cpp;tinyxml.h;tinyxmlerror.cpp;tinyxmlparser.cpp 6个文件添加到静态库编程按提示修改错误(预编译头错误). 完成即可.


二. 最简单的使用

你懂的

[cpp] view plain copy print ?
  1. #include "stdafx.h"   
  2.   
  3. #include "../TinyXML/tinyxml.h"   
  4. #include "../TinyXML/tinystr.h"   
  5.   
  6. #include <iostream>   
  7. #include <string>   
  8. #pragma comment(lib,"../Debug/tinyxml.lib");   
  9.   
  10. bool CreateXMLFile(std::string& strFileName)  
  11. {  
  12.     try  
  13.     {  
  14.         // 创建一个XML的文档对象。   
  15.         TiXmlDocument *xmlDocument = new TiXmlDocument();  
  16.         // 根元素。   
  17.         TiXmlElement *rootElement = new TiXmlElement("Books");  
  18.         // 连接到文档对象, 作为根元素   
  19.         xmlDocument->LinkEndChild(rootElement);  
  20.         // 创建一个Book元素.   
  21.         TiXmlElement *bookElement = new TiXmlElement("Book");  
  22.         // 连接到根元素, 就是根元素的子元素   
  23.         rootElement->LinkEndChild(bookElement);  
  24.         // 设置Book元素的属性, 这里是ID。   
  25.         bookElement->SetAttribute("ID""1");  
  26.         // 创建Name元素和Price元素   
  27.         TiXmlElement *nameElement = new TiXmlElement("Name");  
  28.         TiXmlElement *priceElement = new TiXmlElement("Price");  
  29.         // 连接   
  30.         bookElement->LinkEndChild(nameElement);  
  31.         bookElement->LinkEndChild(priceElement);  
  32.         // 设置Name元素和Price元素的值。   
  33.         TiXmlText *nameValue = new TiXmlText("葵花宝典");  
  34.         nameElement->LinkEndChild(nameValue);  
  35.         TiXmlText *priceValue = new TiXmlText("50.00");  
  36.         priceElement->LinkEndChild(priceValue);  
  37.         xmlDocument->SaveFile(strFileName.c_str());  // 保存到文件   
  38.     }  
  39.     catch(...)  
  40.     {  
  41.         return false;  
  42.     }  
  43.     return true;  
  44. }  
  45.   
  46. bool ReadXMLFile(std::string& szFileName)  
  47. {  
  48.     try  
  49.     {  
  50.         // 创建一个XML的文档对象。   
  51.         TiXmlDocument *xmlDocument = new TiXmlDocument(szFileName.c_str());  
  52.         // 解析   
  53.         xmlDocument->LoadFile();  
  54.         // 获得根元素   
  55.         TiXmlElement *rootElement = xmlDocument->RootElement();  
  56.   
  57.         // 输出根元素名称   
  58.         std::cout << rootElement->Value() << std::endl;  
  59.         // 获得第一个节点。   
  60.         TiXmlElement *firstElement = rootElement->FirstChildElement();  
  61.         // 获得第一个Person的name节点和age节点和ID属性。   
  62.         TiXmlElement *nameElement = firstElement->FirstChildElement();  
  63.         TiXmlElement *priceElement = nameElement->NextSiblingElement();  
  64.         TiXmlAttribute *IDAttribute = firstElement->FirstAttribute();  
  65.   
  66.         // 输出   
  67.         std::cout << nameElement->FirstChild()->Value() << std::endl;  
  68.         std::cout << priceElement->FirstChild()->Value() << std::endl;  
  69.         std::cout << IDAttribute->Value()<< std::endl;  
  70.     }  
  71.     catch (...)  
  72.     {  
  73.         return false;  
  74.     }  
  75.     return true;  
  76. }  
  77.   
  78.   
  79. int _tmain(int argc, _TCHAR* argv[])  
  80. {  
  81.     std::string fileName = "C:\\test.xml";  
  82.     CreateXMLFile(fileName);  
  83.     ReadXMLFile(fileName);  
  84.     return 0;  
  85. }  


资源下载地址:

http://download.csdn.net/detail/cay22/5088811

你可能感兴趣的:(C++,xml)