在游戏服务端中,我们会将可变的东西写数据库里,而将一成不变的东西写在配置里。在现实开发过程中,大多数开发者会选用xml作为服务的配置。原因是xml树形结构化表示、标记清晰及易于理解和方便移植。下面我将会为我的服务端添加tinyxml。
上面的代码中我只是包含了tinyxml.h(#include "tinyxml/tinyxml.h"),就可以正确地调用tinyxml。所以可以看出将tinyxml整合到自己的代码是相当方便的。将服务端添加tinyxml只是开始,下一步要对tinexml进行封装,使之更适用我的服务端。
记得留意下一篇文章,我的服务端之xml类型转换: http://blog.youkuaiyun.com/yitouhan/article/details/17333191
tinyxml是一个简单的,轻量级的,由C++实现的XML文档的解析器,它可以被其它程序方便地集成进去使用。同时tinyxml也是免费开源的。因此我会将tinyxml集成到我的服务端里面。tinyxml只有以下几个源文件。
tinyxml的源文件可以到网上下载,下面来看一下tinyxml的应用例子。
<?xml version="1.0" encoding="utf-8"?>
<blog name="一头汗的专栏">
<blogger>一头汗</blogger>
<classify name="我的服务端">
<article>我的服务端之C++游戏服务端防崩溃</article>
<article>我的服务端之C++封装Mysql</article>
<article>我的服务端之C++网络库对外接口</article>
</classify>
<classify name="lua设计模式">
<article>设计模式总结</article>
</classify>
</blog>
#include <stdio.h>
#include <time.h>
#include "globalvariable.h"
#include "luaengine.h"
#include "gamesocket.h"
#include "log.h"
#include "dll.h"
#include "MyDll.h"
#include "gametime.h"
#include "frame.h"
#include "datatable.h"
#include "showcrash.h"
#include "globalfunction.h"
#include "tinyxml/tinyxml.h"
void Init()
{
TiXmlDocument doc;
if (doc.LoadFile("conf/info.xml"))
{
TiXmlElement* rootElement = doc.RootElement();
TiXmlAttribute* attr =rootElement->FirstAttribute();
printf("%s\n",attr->Value());
TiXmlElement * curElement = rootElement->FirstChildElement ();
printf("----博主%s\n",curElement->GetText());
curElement = curElement->NextSiblingElement();
while(curElement)
{
attr = curElement->FirstAttribute();
printf("----%s\n",attr->Value());
TiXmlElement * subcurElement = curElement ->FirstChildElement ();
while (subcurElement )
{
printf("--------%s\n",subcurElement->GetText());
subcurElement = subcurElement ->NextSiblingElement();
}
curElement = curElement->NextSiblingElement();
}
}
else
{
printf("can not parse xml conf/info.xml\n") ;
}
}
int main()
{
Init();
return 0;
}
上面的代码中我只是包含了tinyxml.h(#include "tinyxml/tinyxml.h"),就可以正确地调用tinyxml。所以可以看出将tinyxml整合到自己的代码是相当方便的。将服务端添加tinyxml只是开始,下一步要对tinexml进行封装,使之更适用我的服务端。
记得留意下一篇文章,我的服务端之xml类型转换: http://blog.youkuaiyun.com/yitouhan/article/details/17333191