为了能在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以上版本号)的更多相关文章

  1. IE下JS读取xml文件示例代码

    JS读取xml文件具体步骤为:创建DOM对象.加载xml文件(仅适用于IE)附示例代码,感兴趣的朋友可以参考下,希望对大家有所帮助使用javascript脚本读取xml文件,这里暂只考虑IE浏览器st ...

  2. 读取xml数据装配到字典中之应用场景

    前段时间看到支付宝设置里面有个多语言这个功能,蛮有意思的,就想双休没事的话做个相关的demo玩玩,可是礼拜六被妹子拽出去玩了一天,来大上海有大半年了,基本没有出去玩过,妹子说我是超级宅男,也不带她出去 ...

  3. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值

    前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...

  4. MFC如何读取XML

    <?xml version="1.0" encoding="utf-8"?> <Cases> <case> <No&g ...

  5. 使用dom4j读取xml连接数据库与之单例模式

    使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...

  6. java DOM4J 读取XML

    最近学习Java,在处理XML文档的时候,查阅相关资料,发现了DOM4J这个jre库,相对C#的XML处理来说,功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.ut ...

  7. C#中常用的读取xml的几种方法(转)

    本文完全来源于http://blog.csdn.net/tiemufeng1122/article/details/6723764,仅作个人学习之用. XML文件是一种常用的文件格式,例如WinFor ...

  8. wcf序列化大对象时报错:读取 XML 数据时,超出最大

    错误为: 访问服务异常:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出 错: request.InnerException 消息是“反序 ...

  9. C#中常用的几种读取XML文件的方法

    1.C#中常用的几种读取XML文件的方法:http://blog.csdn.net/tiemufeng1122/article/details/6723764/

随机推荐

  1. NOI2009植物大战僵尸

    这题应该分两步来做: 1.拓扑排序,去掉无敌点 2.求最大闭合子图 需要注意几点: 1.拓扑排序时,如果(i,j)可以攻击到(x,y),那么增加(x,y)的入度,而不是(i,j)的入度 因为入度代表着 ...

  2. C# 中的枚举类型 enum (属于值类型)

    原文 C# 中的枚举类型 enum (属于值类型) C# 支持两种特殊的值类型:枚举和结构. 声明枚举:声明时要声明所有可能的值. using System; using System.Collect ...

  3. [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.5.1

    Show that the inner product $$\bex \sef{x_1\wedge \cdots \wedge x_k,y_1\wedge \cdots\wedge y_k} \eex ...

  4. Robotium自动化测试报告生成

    使用Robotium进行测试的时候,要想可以导出可视的测试结果,可以使用junitreport来实现junitreport下载地址:https://github.com/jsankey/android ...

  5. Newtonsoft.Json.dll使用

    1:Newtonsoft.Json.dll 下载  http://json.codeplex.com/ 2:解析JSON字符窜 方法1: using Newtonsoft.Json; using Sy ...

  6. [原]Java面试题-输入一个整型数组,找出最大值、最小值,并交换。

    [Date]2013-09-19 [Author]wintys (wintys@gmail.com) http://wintys.cnblogs.com [Content]: 1.面试题 输入一个整型 ...

  7. 问题:关于坛友的一个js轮播效果的实现

    需求:点击向前按钮进行向前翻页,向后按钮进行向后翻页,点击中间蓝色小圆圈可以来回自由切换 我的大概思路:先默认显示一个div  然后在原位置在隐藏一个div   给按钮添加click事件,转到下一个时 ...

  8. Makefile学习与进阶之Makefile.am和$$(M)的意思

    (1)makefile 中,出现$$(M) 是什么意思,发现还是看实际的Makefile长知识啊 在makefile中,会经常使用shell命令,也经常见到$var 和 $$var的情况,有什么区别呢 ...

  9. 【翻译】运行于x86机器上的FreeBSD的PCI中断

    来源 http://people.freebsd.org/~jhb/papers/bsdcan/2007/article/article.html 摘要 在拥有多个独立设备的计算机里一个重要的元素是一 ...

  10. 命令ls

    ls -a  显示所有文件,包括隐藏文件(.开头的文件,配置文件常为隐藏文件)ls -l  显示详细信息ls -R  递归显示子目录结构ls -ld  显示目标目录的详细信息(并不返回目录里的内容)