Cocos2d-x 简陋而且垃圾的XML解析读取
来源:互联网 发布:西安交通大学网络认证 编辑:程序博客网 时间:2024/04/29 19:27
ReadXML.h文件
#pragma once#include "cocos2d.h"USING_NS_CC;class ReadXML{public:ReadXML(void);~ReadXML(void);//---创建读取XML文件指针单例---//static ReadXML* sharedXML();//---初始化数据,fileXML为要读取的XML文件名字---//bool initData(char* flieXML);//---获取类型信息,name为要获取的标记 index为ID号组---//int getIntData(char* name, int index);float getFloatData(char* name, int index);CCString* getStringData(char* name, int index);/*CCAnimation* getAnimationData(char* name, int index);*/private://---本来的唯一指针---//static ReadXML* read;//---保存XML中的数据---//CCArray* DataGroup;};
ReadXML.cpp文件
#include "ReadXML.h"ReadXML* ReadXML::read = NULL;ReadXML::ReadXML(void){}ReadXML::~ReadXML(void){}ReadXML* ReadXML::sharedXML(){if(!read)read = new ReadXML();return read;}bool ReadXML::initData(char* flieXML){DataGroup = CCArray::create();DataGroup->retain();std::string path=CCFileUtils::sharedFileUtils()->fullPathForFilename(flieXML);tinyxml2::XMLDocument *pXMLDoc=new tinyxml2::XMLDocument();unsigned long nSize;const char * pXMLBuffer=(const char *)CCFileUtils::sharedFileUtils()->getFileData(path.c_str(),"rb",&nSize);if(!pXMLBuffer){CCLog("is not xml data");return false;}pXMLDoc->Parse(pXMLBuffer);delete [] pXMLBuffer;tinyxml2::XMLElement * pRootElem=pXMLDoc->RootElement();tinyxml2::XMLElement * pCurChild=pRootElem->FirstChildElement();while (pCurChild){CCDictionary * pDict=CCDictionary::create();tinyxml2::XMLElement * pCurTag=pCurChild->FirstChildElement();while(pCurTag){pDict->setObject(CCString::create(pCurTag->GetText()),pCurTag->Value());pCurTag=pCurTag->NextSiblingElement();}DataGroup->addObject(pDict);pCurChild=pCurChild->NextSiblingElement();}return true;}int ReadXML::getIntData(char* name, int index){int data;CCDictionary *pTempDic=(CCDictionary *)DataGroup->objectAtIndex(index);sscanf(((CCString*)pTempDic->objectForKey(name))->getCString(),"%d",&data);return data;}float ReadXML::getFloatData(char* name, int index){float data;CCDictionary *pTempDic=(CCDictionary *)DataGroup->objectAtIndex(index);sscanf(((CCString*)pTempDic->objectForKey(name))->getCString(),"%f",&data);return data;}CCString* ReadXML::getStringData(char* name, int index){CCDictionary *pTempDic=(CCDictionary *)DataGroup->objectAtIndex(index);return ((CCString*)pTempDic->objectForKey("filename"));}
0 0
- Cocos2d-x 简陋而且垃圾的XML解析读取
- cocos2d-x 中xml的读取
- cocos2d-x xml解析
- Cocos2d-x xml解析
- Cocos2d-x XML文件读取操作与解析操作
- 用cocos2d-x 解析xml
- cocos2d-x解析xml文件
- 用cocos2d-x 解析xml
- cocos2d-x 中xml解析
- 【Cocos2d-x 021】 xml解析
- Cocos2d-x中自定义XML的读取和写入
- cocos2d-x读取并解析json文件的方法[CSJson]
- Cocos2d-x游戏中默认的AndroidManifest.xml的解析
- 【玩转cocos2d-x之三十二】xml的解析
- 【玩转cocos2d-x之三十二】xml的解析
- Cocos2d-x tinyxml2用于xml的解析,自动生成xml文件和解析xml文件
- cocos2d-x XML 读取 libxml2使用
- cocos2d-x -----文件的读取
- 2011-10-15腾讯校园招聘笔试题目与参考答案
- C++类实现最大数的输出
- 多重安全保障 天锐移动终端安全管理系统让移动办公时代马上到来
- MySQL 数据库性能优化之SQL优化
- 在Linux系统中设置vim的属性(自动换行、显示行号、高亮度显示、自动缩进)
- Cocos2d-x 简陋而且垃圾的XML解析读取
- Qt的tcpserver demo
- VS2010 "error MSB8011” 解决方法
- JDBC连接MySQL数据库及示例
- linux网络基础之三层交换机笔记
- android view 上下左右滑动 事件
- CUDA Kepler(一) Read-Only Cache特性解析及其性能对比测试
- 关于QT需要注意的几个问题
- 北京亲亲宝贝加盟是骗子吗