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
最後更新:2017-04-03 12:56:32