cocos2d-x解析xml时的Bug
2024-08-27 19:07:26
cocos2d-x中使用tinyxml解析xml配置。如下:
tinyxml2::XMLDocument doc;
if (tinyxml2::XML_SUCCESS != doc.LoadFile(strCfgFile.c_str())) {
return ;
}
但上面的解析在android下会有问题。发无法正确解析xml文件。因此,对于android下的解析,需要使用如下方式:
void IXMLConfigParser::load(const std::string& strCfgFile) {
tinyxml2::XMLDocument doc;
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
unsigned long unSize = 0ul;
auto pFileContent = cocos2d::CCFileUtils::sharedFileUtils()->getFileData(strCfgFile.c_str(), "rb", &unSize);
if (nullptr != pFileContent && unSize > 0ul) {
pFileContent[unSize - 1ul] = '\0';
}
if (nullptr == pFileContent || 0ul == unSize || tinyxml2::XML_SUCCESS != doc.Parse((const char*)(pFileContent))) {
#else
if (tinyxml2::XML_SUCCESS != doc.LoadFile(strCfgFile.c_str())) {
#endif
COLAssert(false, "load xml file error => IXMLConfigParser::load");
return ;
}
auto pRootNode = doc.RootElement();
if (nullptr == pRootNode) {
return ;
}
this->doLoadConfig(*pRootNode);
}
最新文章
- iOs基础篇(二十二)—— UIPickerView、UIDatePicker控件的使用
- win32自绘按钮,使用GDI+(一)
- 实现iOS图片等资源文件的热更新化(零): 序
- Clearing Floats清除浮动--clearfix的不同方法的使用概述
- jsp中<;c:if>;与<;s:if>;的区别
- iOS 4.2 SDK安装
- JDK-windows7环境变量配置-亲测版本 以及HelloWorld
- Winform DataGridView直接导出Excel
- Python json &; pickle, shelve 模块
- [mybatis]Example的用法-转
- jmeter接口测试基础知识1.0
- boost asio 学习(七) 网络基础 连接器和接收器(TCP示例)
- Vue.js表单校验;动画指令;避免内存泄露。
- Jaxb如何优雅的处理CData
- Linux高速缓冲区原理
- Ehcache整合spring配置
- JQuery Mobile+JS实现智能浮动定位导航条
- Fork/Join框架实现原理
- 使用 create-react-app 构建 react应用程序
- 用 WEKA 进行数据挖掘 ——第一章:简介