cocos2d-x读取xml(适用于cocos2d-x 2.0以上版本号)
为了能在cocos2d-x的文本标签中显示中文,一个是转换文件编码格式,还有一种就是读取utf-8格式的xml文件。我选择了后者,其原因大家可以去搜索一下cocos2d-x显示中文,希望可以你给答案。无论怎么样,本篇是介绍cocos2d-x读取xml的内容。以下開始吧。
首先先看代码:
#include "CXmlStream.h" CXmlStream::CXmlStream(const char* dicFilename)
{
this->m_dictionary = CCDictionary::createWithContentsOfFile(dicFilename);
} CXmlStream::~CXmlStream()
{ } const char* CXmlStream::GetStringByKey(const char* keyword)
{
return ((CCString*)(this->m_dictionary->objectForKey(keyword)))->m_sString.c_str();
} const char* CXmlStream::GetStringByKeyFromFile(const char* dicFilename, const char* keyword)
{
CCDictionary *dictionary = CCDictionary::createWithContentsOfFile(dicFilename);
return ((CCString*)dictionary->objectForKey(keyword))->m_sString.c_str();
}cpp中主要实现了两个通过关键字获取相应内容的函数。
以下是.h文件:#ifndef __CXMLSTREAM_H__
#define __CXMLSTREAM_H__ #include "cocos2d.h" USING_NS_CC; class CXmlStream
{
private:
CCDictionary* m_dictionary; public:
CXmlStream(const char* dicFilename);
~CXmlStream(); const char* GetStringByKey(const char* keyword); static const char* GetStringByKeyFromFile(const char* dicFilename, const char* keyword);
}; #endif声明了一个字典用来存储从xml中读取的内容。
比如以下的一个xml文件:<dict>
<key>HomeScene</key>
<string>首頁</string>
<key>MainScene</key>
<string>主頁</string>
<key>BookScene</key>
<string>百科</string>
<key>GameScene</key>
<string>遊戲</string>
<key>AnimScene</key>
<string>動畫</string>
<key>FOgameScene</key>
<string>力的作用</string>
<key>FOgameScene_Book</key>
<string>力的作用 - 百科</string>
<key>FOgameScene_Game</key>
<string>力的作用 - 遊戲</string>
<key>FOgameScene_Anim</key>
<string>力的作用 - 動畫</string>
<key>GVScene</key>
<string>地球引力</string>
<key>GVScene_Book</key>
<string>地球引力 - 百科</string>
<key>GVScene_Game</key>
<string>地球引力 - 遊戲</string>
<key>GVScene_Anim</key>
<string>地球引力 - 動畫</string>
</dict>大家也可在github中查看源码:https://gist.github.com/xiebaochun/835508ffa63907c1cca3
cocos2d-x读取xml(适用于cocos2d-x 2.0以上版本号)的更多相关文章
- IE下JS读取xml文件示例代码
JS读取xml文件具体步骤为:创建DOM对象.加载xml文件(仅适用于IE)附示例代码,感兴趣的朋友可以参考下,希望对大家有所帮助使用javascript脚本读取xml文件,这里暂只考虑IE浏览器st ...
- 读取xml数据装配到字典中之应用场景
前段时间看到支付宝设置里面有个多语言这个功能,蛮有意思的,就想双休没事的话做个相关的demo玩玩,可是礼拜六被妹子拽出去玩了一天,来大上海有大半年了,基本没有出去玩过,妹子说我是超级宅男,也不带她出去 ...
- 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值
前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...
- MFC如何读取XML
<?xml version="1.0" encoding="utf-8"?> <Cases> <case> <No&g ...
- 使用dom4j读取xml连接数据库与之单例模式
使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...
- java DOM4J 读取XML
最近学习Java,在处理XML文档的时候,查阅相关资料,发现了DOM4J这个jre库,相对C#的XML处理来说,功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.ut ...
- C#中常用的读取xml的几种方法(转)
本文完全来源于http://blog.csdn.net/tiemufeng1122/article/details/6723764,仅作个人学习之用. XML文件是一种常用的文件格式,例如WinFor ...
- wcf序列化大对象时报错:读取 XML 数据时,超出最大
错误为: 访问服务异常:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出 错: request.InnerException 消息是“反序 ...
- C#中常用的几种读取XML文件的方法
1.C#中常用的几种读取XML文件的方法:http://blog.csdn.net/tiemufeng1122/article/details/6723764/
随机推荐
- Dubbo实例
1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...
- spring+springMVC+JPA配置详解(使用缓存框架ehcache)
SpringMVC是越来越火,自己也弄一个Spring+SpringMVC+JPA的简单框架. 1.搭建环境. 1)下载Spring3.1.2的发布包:Hibernate4.1.7的发布包(没有使用h ...
- 关于 tomcat 集群中 session 共享的三种方法
前两种均需要使用 memcached 或redis 存储 session ,最后一种使用 terracotta 服务器共享. 建议使用 redis,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单 ...
- android中Invalidate和postInvalidate的区别
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用. Android提供了Inva ...
- [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.5.7
Prove that for any vectors $$\bex u_1,\cdots,u_k,\quad v_1,\cdots,v_k, \eex$$ we have $$\bex |\det(\ ...
- [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.2.7
The set of all invertible matrices is a dense open subset of the set of all $n\times n$ matrices. Th ...
- POJ 1151 Atlantis 线段树+离散化+扫描线
这次是求矩形面积并 /* Problem: 1151 User: 96655 Memory: 716K Time: 0MS Language: G++ Result: Accepted */ #inc ...
- Gdb 常用命令
命令名称 含义 示例 b fun_name 设置断点 b main b 行号 if 条件 设置带条件断点 如:b 11 if i==10 n 下一行 n s 跳入函数内部 s sum fin ...
- 解决js获取数据跨域问题,jsonP
网上说了一些jsonp的示例,感觉都没用,最后研究了一下,调用腾讯的一个api.最后要加output=jsonp&callback=?这个,比较适用. var url = "http ...
- uvalive 3135 Argus priority_queue
用优先队列维护每个时间点优先级最高的元素. #include<iostream> #include<cstdio> #include<cstdlib> #inclu ...