cocos2d-x读取xml(适用于cocos2d-x 2.0以上版本)

简介: <p>    为了能在cocos2d-x的文本标签中显示中文,一个是转换文件编码格式,另一种就是读取utf-8格式的xml文件。我选择了后者,其原因大家可以去搜索一下cocos2d-x显示中文,希望能够你给答案。不管怎么样,本篇是介绍cocos2d-x读取xml的内容。下面开始吧。</p> <p><br></p> <p>首先先看代码:</p> <p></p> <pre class=

    为了能在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

相关文章
|
6月前
|
Kubernetes Cloud Native Java
Activiti 简介以及最新activiti依赖 pom.xml文件(使用时注意对应版本号)
Activiti 简介以及最新activiti依赖 pom.xml文件(使用时注意对应版本号)
193 2
|
6月前
|
XML Java 数据库连接
手写mybatis xml版本
手写mybatis xml版本
49 0
|
2月前
|
XML Java 应用服务中间件
springMVC01,springMVC的执行流程【第一个springMVC例子(XML配置版本):HelloWorld】
通过一个HelloWorld实例,介绍了SpringMVC的基本概念、执行流程,并详细讲解了如何创建和配置第一个SpringMVC项目(基于XML)。
springMVC01,springMVC的执行流程【第一个springMVC例子(XML配置版本):HelloWorld】
|
XML JSON JavaScript
SAP UI5 XML 视图在实例化时就已经确定了 BindingSyntax 的实现版本了
SAP UI5 XML 视图在实例化时就已经确定了 BindingSyntax 的实现版本了
|
XML SQL Java
解决2022.3.1版本中 IDEA中 XML文件屎黄色背景 的方法
解决2022.3.1版本中 IDEA中 XML文件屎黄色背景 的方法
534 0
|
JavaScript
升级程序pom.xml版本号脚本
实际开发中,但项目应用以及很少,很多都是多model合并,这就产生了一个问题,每次升级版本时,每个pom文件都需要更改
477 0
升级程序pom.xml版本号脚本
|
XML JavaScript 前端开发
【前端】白天/黑夜主题切换:JS读取XML预设主题实现黑白主题切换
【前端】白天/黑夜主题切换:JS读取XML预设主题实现黑白主题切换
199 0
【前端】白天/黑夜主题切换:JS读取XML预设主题实现黑白主题切换
|
XML 数据格式 Python
XML转CSV读取对应所有数据(tkinter工具)
代码段:处理xml标签和标签名的数据读取
147 0
XML转CSV读取对应所有数据(tkinter工具)
|
XML JSON JavaScript
Python基础——PyCharm版本——第八章、文件I/O(XML)
Python基础——PyCharm版本——第八章、文件I/O(XML)
139 0
Python基础——PyCharm版本——第八章、文件I/O(XML)
|
XML JavaScript 数据处理
【目标检测】一文干翻xml文件的读取
【目标检测】一文干翻xml文件的读取
【目标检测】一文干翻xml文件的读取