cocos2dx TinyXml2的使用

来源:互联网 发布:php实现字符串反转 编辑:程序博客网 时间:2024/05/22 10:35
想要更多了解,请点击下面链接:

转自:http://www.firedragonpzy.com.cn/index.php/archives/3588

这里我只说明一下如何使用,那原文章的例子来说:

要读取的XML文件如下:

<Persons> <Person ID=”1″> <name>周星星</name> <age>20</age> </Person> <Person ID=”2″> <name>白晶晶</name> <age>18</age> </Person> </Persons>


 

读取XML:

//创建一个XML的文档对象。 TiXmlDocument *myDocument = new TiXmlDocument("填上你的Xml文件名");myDocument->LoadFile();//获得根元素,即Persons。TiXmlElement *RootElement = myDocument.RootElement();//输出根元素名称,即输出Persons。cout << RootElement->Value() << endl;//获得第一个Person节点。TiXmlElement *FirstPerson = RootElement->FirstChildElement();//获得第一个Person的name节点和age节点和ID属性。TiXmlElement *NameElement = FirstPerson->FirstChildElement();TiXmlElement *AgeElement = NameElement->NextSiblingElement();TiXmlAttribute *IDAttribute = FirstPerson->FirstAttribute();//输出第一个Person的name内容,即周星星;age内容,即20;ID属性,即1。cout << NameElement->FirstChild()->Value << endl;cout << AgeElement->FirstChild()->Value << endl;cout << IDAttribute->Value() << endl;

 

另外一种XML格式:

<include>
 <data taskId="1" taskName="捕鱼任务" fish_id="1" eventType="1" taskTime="150" needNum="30" rewardGold="100" rewardExp="100"/>  <data taskId="2" taskName="捕鱼任务" fish_id="1" eventType="1" taskTime="180" needNum="40" rewardGold="100" rewardExp="100"/>  <data taskId="3" taskName="捕鱼任务" fish_id="2" eventType="1" taskTime="180" needNum="20" rewardGold="100" rewardExp="120"/>   </include>


这样的XML读取如下:

tinyxml2::XMLDocument doc;//创建一个XML的文档对象    if(!CommonFunc::loadInnerDictFile(doc, "你的XML文件")){         return 1;    }    tinyxml2::XMLElement * curNode = doc.RootElement()->FirstChildElement("data");//获取根元素名称    while(curNode){        TaskInfo *info = new TaskInfo();        info->id = curNode->IntAttribute("taskId");        info->taskName = curNode->Attribute("taskName");        info->evenType = curNode->IntAttribute("eventType");        info->fishId = curNode->IntAttribute("fish_id");        info->taskTime = curNode->IntAttribute("taskTime");        info->needCount = curNode->IntAttribute("needNum");        info->rewardGold = curNode->IntAttribute("rewardGold");        info->rewardExp = curNode->IntAttribute("rewardExp");        vector<TaskInfo*>::iterator iter = m_taskInfos.begin();        for (; iter != m_taskInfos.end(); iter++)        {            if ((*iter)->id > info->id)            {                break;            }        }//把解析的第一排数据放入Vector容器中        m_taskInfos.insert(iter, 1, info);//解析第二排数据        curNode = curNode->NextSiblingElement("data");


 



 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 jstack RS编译码器 RS编译码器原理 高德地图 导航信息 当前导航路径信息 实时导航信息 高德导航时Navi的信息 高德NaviInfo 安卓蓝牙发送信息 clj.fastble 先采用队列求一条最短迷宫路径长度minlen,再采用栈求所有长度为minlen的最短迷宫路径 iOS蓝牙 pycharm激活 shadowsocks下载 shadowsocks下载 开源沙龙 C++程序设计从键盘中输入两个整数,求这两个整数的最大公约数和最小公倍数。 江南大学五部曲 centos搭建ss 算法之美_源代码发布(8) understand halfaSPIclockcycleproducesaclockedge 贪心算法活动 TRIZ系列-创新原理-17 朴素贝叶斯分类 王者荣耀金币 探索性数据分析演示 治安防控 治安 TRIZ系列-创新原理-19 TRIZ系列-创新原理-20 利用图像的平移、旋转、缩放、镜像等空间几何变换实现对图像的自适应缩放、几何变换等特效 利用图像的平移、旋转、缩放、镜像等空间几何变换实现对图像的几何变换等特效 [Err]1005-Can\'tcreatetable\'item4.#sql-1238_2c\'( SAPFICO财务成本知识 财务管理分析(希金斯:第八版) 图像解压 巜人民曰报》采访张文宏,陈尔真 linux上服务器如何转发设置 图像的自适应缩放、几何变换等特效