极速多用户网页音乐播放器(框架固定形式/底部音乐播放器)
<div><p>此网页使用了框架,但您的浏览器不支持框架。</p></div>

Tinyxml的简单用法

生成或解析的XML如下(代码的头文件未包含,只是测试,所以未检查空指针):

View Code
 1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
 2 <Student>
 3     <ComputerStu Name="Jack" Age="22" Sex="male">
 4         <Addr>Nan Jing City
 5             <!--Student Address-->
 6         </Addr>
 7         <Tel>13856985695</Tel>
 8     </ComputerStu>
 9     <!--Computer Student-->
10 </Student>

创建XML代码如下:

View Code
 1 #include "CreateCfgXml.h"
 2 
 3 int CreateCfgXml::CreateXml()
 4 {
 5     //定义一个XML的文档对象。
 6     TiXmlDocument* myDocument = new TiXmlDocument;
 7 
 8     //定义XML的声明
 9     TiXmlDeclaration* pDeclaration = new TiXmlDeclaration("1.0", "UTF-8", "yes");  
10     myDocument->LinkEndChild(pDeclaration);      
11     
12     
13     //创建一个根元素并连接。
14     TiXmlElement* RootElement = new TiXmlElement("Student");
15     myDocument->LinkEndChild(RootElement);
16 
17     //创建一个ComputerStu元素,设置属性并连接。
18     TiXmlElement* ComElement = new TiXmlElement("ComputerStu");    
19     RootElement->LinkEndChild(ComElement);
20     ComElement->SetAttribute("Name", "Jack");
21     ComElement->SetAttribute("Age", 22);
22     ComElement->SetAttribute("Sex", "male");
23 
24     TiXmlComment* StuComment = new TiXmlComment("Computer Student");
25     RootElement->LinkEndChild(StuComment);
26 
27     TiXmlElement* addrElment = new TiXmlElement("Addr");
28     ComElement->LinkEndChild(addrElment);     
29     TiXmlText* addrText = new TiXmlText("Nan Jing City");
30     addrElment->LinkEndChild(addrText);
31     TiXmlComment* AddrComment = new TiXmlComment("Student Address");
32     addrElment->LinkEndChild(AddrComment);
33 
34     TiXmlElement* telElment = new TiXmlElement("Tel");
35     ComElement->LinkEndChild(telElment);     
36     TiXmlText* telText = new TiXmlText("13856985695");
37     telElment->LinkEndChild(telText);
38     
39     myDocument->SaveFile("test.xml");//保存到文件
40     //此处只删除文档类,它会自动删除下面申请的节点
41     if (NULL != myDocument)
42     {
43         delete myDocument;
44         myDocument = NULL;
45     }
46     
47     return 0;
48 }

解析XML代码如下:

View Code
 1 #include "ParseXml.h"
 2 #include "tinyxml.h"
 3 #include <iostream>
 4 
 5 using std::cout;
 6 
 7 int ParseXml::ParseCfgXml()
 8 {
 9     TiXmlDocument* myXmlDocument = new TiXmlDocument("test.xml");
10     myXmlDocument->LoadFile();
11     myXmlDocument->Print();
12 
13     //获取根节点,你也可以用FirstChildElement()来获取
14     TiXmlElement* rootElement = myXmlDocument->RootElement();
15     TiXmlElement* StuElement = rootElement->FirstChildElement();
16     //获取节点属性
17     TiXmlAttribute* StuAttr = StuElement->FirstAttribute();
18     const char* Name = StuAttr->Value();
19     StuAttr = StuAttr->Next();
20     const char* Age = StuAttr->Value();
21     StuAttr = StuAttr->Next();
22     const char* Male = StuAttr->Value();
23 
24     cout<< "The Student is " << Name << ", Age is " << Age << ", Sex is " << Male << std::endl;
25 
26     StuElement = StuElement->FirstChildElement();
27     const char* Addr = StuElement->GetText();
28     
29     //获取注释
30     TiXmlNode* myNode = StuElement->LastChild();
31     TiXmlComment* AddrComment = myNode->ToComment();
32     const char* Comment = AddrComment->Value();
33 
34     cout << Comment << " is " << Addr << std::endl;
35     
36     StuElement = StuElement->NextSiblingElement();
37     const char* Tel = StuElement->GetText();
38 
39     cout << "The Tel is " << Tel << std::endl;
40 
41     if (NULL != myXmlDocument)
42     {
43         delete myXmlDocument;
44         myXmlDocument = NULL;
45     }
46     return 0;
47 }

 

 

posted @ 2013-04-27 13:56  飞鼠溪  阅读(148)  评论(0编辑  收藏  举报