1.去tinyxml官网下载压缩包,解压后,把.h和.cpp文件复制到你的具体项目的class类下,然后添加到项目中。(可以单独起一个tinyxml文件夹存放这些文件)
2.在要用到解析库的地方,添加头文件:include "tinyxml.h" 和 include "tinystr.h"
通过上面配置可见,tinyxml是一个简单轻量级的第三方库
下面,请看代码
void HelloWorld::createTinyXmlFile()
{
try
{
//创建一个XML的文档对象。
TiXmlDocument *myDocument = new TiXmlDocument();
//创建一个根元素并连接。
TiXmlElement *RootElement = new TiXmlElement("Persons");
myDocument->LinkEndChild(RootElement);
//创建一个Person元素并连接。
TiXmlElement *PersonElement = new TiXmlElement("Person");
RootElement->LinkEndChild(PersonElement);
//设置Person元素的属性。
PersonElement->SetAttribute("ID", "1");
//创建name元素、age元素并连接。
TiXmlElement *NameElement = new TiXmlElement("name");
TiXmlElement *AgeElement = new TiXmlElement("age");
PersonElement->LinkEndChild(NameElement);
PersonElement->LinkEndChild(AgeElement);
//设置name元素和age元素的内容并连接。
TiXmlText *NameContent = new TiXmlText("Yarin");
TiXmlText *AgeContent = new TiXmlText("24");
NameElement->LinkEndChild(NameContent);
AgeElement->LinkEndChild(AgeContent);
char filePath[1024]= {'\0'};
memset(filePath,0,sizeof(filePath));
strcat(filePath,CCFileUtils::sharedFileUtils()->getWriteablePath().c_str());
strcat(filePath,"CreatedTinyXml.xml");
myDocument->SaveFile(filePath);//保存到文件
}
catch (string& e)
{
return ;
}
return ;
}
void HelloWorld::parseTinyXmlFile()
{
try
{
char filePath[1024]= {'\0'};
memset(filePath,0,sizeof(filePath));
strcat(filePath,CCFileUtils::sharedFileUtils()->getWriteablePath().c_str());
strcat(filePath,"CreatedTinyXml.xml");
//创建一个XML的文档对象。
TiXmlDocument *myDocument = new TiXmlDocument(filePath);
myDocument->LoadFile();
//获得根元素,即Persons。
TiXmlElement *RootElement = myDocument->RootElement();
//输出根元素名称,即输出Persons。
CCLOG(RootElement->Value());
//获得第一个Person节点。
TiXmlElement *FirstPerson = RootElement->FirstChildElement();
//获得第一个Person的name节点和age节点和ID属性。
TiXmlElement *NameElement = FirstPerson->FirstChildElement();
TiXmlElement *AgeElement = NameElement->NextSiblingElement();
TiXmlAttribute *IDAttribute = FirstPerson->FirstAttribute();
//输出第一个Person的name内容,即周星星;age内容,即;ID属性,即。
CCLOG(NameElement->FirstChild()->Value());
CCLOG(AgeElement->FirstChild()->Value());
CCLOG(IDAttribute->Value());
}
catch (string& e)
{
return ;
}
return ;
}