读取XML文件

using namespace tinyxml2


CCArray* EdgeSprite::createEdge(int perStages, b2World *world)

{

    XMLDocument* pDoc = new XMLDocument();

    unsigned char* pBuffer =NULL;

    unsigned long bufferSize =0;

    pBuffer = CCFileUtils::sharedFileUtils()->getFileData("stages.xml","r", &bufferSize);

    if (pBuffer) {

        pDoc->Parse((const char*)pBuffer);

    //得到根节点

    XMLElement* rootEle = pDoc->RootElement();

//    CCLog("%s",rootEle->GetText());

    XMLElement* stage = rootEle->FirstChildElement();

    XMLElement* edge = stage->FirstChildElement();

    while (stage) {

//        printf("%s\n",stage->Attribute("name"));

        

        if (string(stage->Attribute("name"))==string(CCString::createWithFormat("%d",perStages)->getCString()))

        {

            edge = stage->FirstChildElement();

            while (edge) {

                const XMLAttribute* attr = edge->FirstAttribute();

                string name = string(attr->Value());

//                printf("%s\t",name.c_str());

                

                attr = attr->Next();

                int x = attr->IntValue();

//                printf("%d\t",x);

                

                attr = attr->Next() ;

                int y = attr->IntValue();

//                printf("%d\t",y);

                

                edge = edge->NextSiblingElement();

                CCPoint p = ccpHeight(x, y);

                this->createEdge( p.x,  p.y, name,world);

            }

        }

        stage = stage ->NextSiblingElement();

    }


    }

    

    return EdgeBody;

}

你可能感兴趣的:(读取XML文件)