尊重原创,转载请注明来自:star特530的CSDN博客 http://blog.csdn.net/start530/article/details/19632869
这阶段很忙,灰常忙,人又感冒了。前两天去报了驾校,所以下班回家后都在突击科目一,争取下周就去考。话说我们这边驾校报名费要六千,全国还有其他地方有这么高的吗?
--------------------------------
前天有人问我beta2 要如何读取xml文档,我刚要说用array的相关接口去读取,才想起beta之后早没有array这玩意了。
那么既然之前是用arry读取,那么现在应该是可以用 容器 来读取吧?
最后我找到了这么两个函数接口:
ValueVector p_vec = FileUtils::getInstance()->getValueVectorFromFile("label.plist");
ValueMap p_map = FileUtils::getInstance()->getValueMapFromFile("label.xml");
那么,具体该怎么用呢。我之前有写过一篇博客,就是从xml文档读取中文的,
接下来就将那篇博客的代码移植到3.0 beta上。我用ValueVector的方法。
传送门:http://blog.csdn.net/start530/article/details/18740733
假设有一个名为 label.xml 的文档,内容如下:
id
10
info
风一般的男纸
id
20
info
注定是寂寞的
代码实现:1、读取
ValueVector txt_vec = FileUtils::getInstance()->getValueVectorFromFile("label.xml");
typedef std::vector ValueVector;
2、提取数据
首先提取 id ,因为id和它对应的值是一对键值,所以可以用Map来存储它们:
auto txt_map = txt_vec.at(0).asValueMap();
int id_int = txt_map.at("id").asInt();
if(id_int == 10)
{
auto label_str = txt_map.at("info").asString();
}
ValueVector txt_vec = FileUtils::getInstance()->getValueVectorFromFile("label.xml");//读取xml文档,放入ValueVector中
for( auto& e : txt_vec)
{
auto txt_map = e.asValueMap();//将键值转化成Map格式,放入txt_map中
int id_int = txt_map.at("id").asInt();//获取id
if(10 == id_int)
{
auto label_str = txt_map.at("info").asString();//获取info的值
auto label1 = LabelTTF::create(label_str,"Arial",25);
label1->setPosition(Point(160,425));
this->addChild(label1,2);
}
else if(20 == id_int)
{
auto label_str = txt_map.at("info").asString();
auto label1 = LabelTTF::create(label_str,"Arial",25);
label1->setPosition(Point(160,400));
this->addChild(label1,2);
}
}
Vector:http://blog.csdn.net/start530/article/details/19170853
Map:http://blog.csdn.net/start530/article/details/19284301
恩,就酱紫。