码迷,mamicode.com
首页 > 其他好文 > 详细

TinyXML2的使用

时间:2015-05-06 12:52:13      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

    最近项目上需要用到XML,然后简单的学习了一下XML,在此简单描述XML中的元素解析过程,学习例子来自于

http://blog.csdn.net/educast/article/details/12908455

  去这里获取XML解析器的文件,我们只需要tinyxml2.h和tinyxml2.cpp,将他们拷到工程目录里面。

1.XML元素内容的获取

创建一个简单的xml文件

1 <?xml version="1.0"?>  
2 <Hello>
3    World
4 </Hello> 

然后编写程序获取xml元素内容。

 

 1 #include <iostream>
 2 #include <fstream>
 3 #include "tinyxml2.h"
 4 using namespace tinyxml2;
 5 using namespace std;
 6 
 7 void example1()  
 8 {  
 9     XMLDocument doc;  
10     doc.LoadFile("test.xml"); 
11     
12     const char* content= doc.FirstChildElement( "Hello" )->GetText();  
13     cout << content <<endl; 
14 }  
15 
16 int main()
17 {    
18     example1();
19 
20     return 0;
21 }

注意:XML文件中不同的书写格式会输出不同的元素内容格式,比如如下所示:

技术分享

技术分享

技术分享

技术分享

 

2.复杂一点的例子

 1 <?xml version="1.0"?>  
 2 <scene name="Depth">  
 3     <node type="camera">  
 4         <eye>0 10 10</eye>  
 5         <front>0 0 -1</front>  
 6         <refUp>0 1 0</refUp>  
 7         <fov>90</fov>  
 8     </node>  
 9     <node type="Sphere">  
10         <center>0 10 -10</center>  
11         <radius>10</radius>  
12     </node>  
13     <node type="Plane">  
14         <direction>0 10 -10</direction>  
15         <distance>10</distance>  
16     </node>  
17 </scene>  
 1 #include <iostream>
 2 #include <fstream>
 3 #include "tinyxml2.h"
 4 using namespace tinyxml2;
 5 using namespace std;
 6 
 7 #include <iostream>  
 8 #include"tinyxml2.h"  
 9 using namespace std;  
10 using namespace tinyxml2;  
11 void example2()  
12 {  
13     XMLDocument doc;  
14     doc.LoadFile("test.xml");  
15     XMLElement *scene=doc.RootElement();  
16     XMLElement *surface=scene->FirstChildElement("node");  
17     while (surface)  
18     {  
19         XMLElement *surfaceChild=surface->FirstChildElement();  
20         const char* content;  
21         const XMLAttribute *attributeOfSurface = surface->FirstAttribute();  
22         cout<< attributeOfSurface->Name() << ":" << attributeOfSurface->Value() << endl;  
23         while(surfaceChild)  
24         {  
25             content=surfaceChild->GetText();  
26             surfaceChild=surfaceChild->NextSiblingElement();  
27             cout<<content<<endl;  
28         }  
29         surface=surface->NextSiblingElement();  
30     }  
31 }  
32 int main()  
33 {  
34     example2();  
35     return 0;  
36 }  

 

TinyXML2的使用

标签:

原文地址:http://www.cnblogs.com/LCCRNblog/p/4481123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!