首页 > 其他 > 详细

cocos2d-x xml读取

时间:2015-12-14 21:13:10      阅读:267      评论:0      收藏:0      [点我收藏+]

网上看各种例子,然后尝试编写,各种问题。可能是版本不一致吧,我使用的cocos2d-x 2.2.6,下面自己写测试代码:

比如测试.xml数据如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Data>
        <Level>1</Level>
        <Hp>100000</Hp>
        <Exp>1000</Exp>
    </Data>
    <Data>
        <Level>2</Level>
        <Hp>200000</Hp>
        <Exp>2000</Exp>
    </Data>
    <Data>
        <Level>3</Level>
        <Hp>300000</Hp>
        <Exp>3000</Exp>
    </Data>
</Root>

 

测试代码:

#include "support/tinyxml2/tinyxml2.h"

void HelloWorld::InitXml(const char* filePath)
{
    std::string xmlFilePath = CCFileUtils::sharedFileUtils()->fullPathForFilename(filePath);
    // 根据文件名获取对应的xml文档指针
    tinyxml2::XMLDocument *pXmlDoc = new tinyxml2::XMLDocument();
    tinyxml2::XMLError errorId = pXmlDoc->LoadFile(xmlFilePath.c_str());
    if(errorId != 0)
    {
        // xml格式错误
        return;
    }

    // 获取根节点
    tinyxml2::XMLElement *rootNode = pXmlDoc->RootElement();
    CCLOG("rootNode = %s",rootNode->Name());            // 根元素名称
    // 获取第一个子节点
    tinyxml2::XMLElement *firstElement = rootNode->FirstChildElement();
    CCLOG("%s",firstElement->Name());                    // 子节点名称

    //
    while(firstElement != NULL)
    {
        // 获取该节点的子级
        tinyxml2::XMLNode *pCurNode = firstElement->FirstChild();
        while(pCurNode != NULL)
        {
            CCLOG("   %s = %s", pCurNode->Value(), pCurNode->ToElement()->GetText());
            // 获取该节点的下一个子级
            pCurNode = pCurNode->NextSibling();
        }
        //获取下一个子节点
        firstElement = firstElement->NextSiblingElement();
        CCLOG(" ");
    }
}

输出结果:

rootNode = Root
Data
   Level = 1
   Hp = 100000
   Exp = 1000
 
   Level = 2
   Hp = 200000
   Exp = 2000
 
   Level = 3
   Hp = 300000
   Exp = 3000

至于为什么,请大家自行查找,抄写出来的程序并不说明我懂了,知道为什么这些写的程序才是真的进步!

 

cocos2d-x xml读取

原文:http://www.cnblogs.com/SkyflyBird/p/5046378.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!