Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cocos2d-x使用tinyxml2解析&存储xml大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我用的是2.1.4的cocos2d-x,里面自带有Tinyxml2库。好像2.1.0以上都有了

导入头文件:
#include "support/Tinyxml2/Tinyxml2.h"

一:创建xml并保存

//要储存XML文件的路径
    std::String filePath = CCFileUtils::sharedFileUtils()->getWritablePath() + "wociao.xml";
    xml文档
    XMLDocument *pDoc = new XMLDocument();
    if (NULL==pDoC) {
        return ;
    }
    xml声明
    XMLDeclaration *pDel = pDoc->NewDeclaration(xml version=\"1.0\" encoding=\"UTF-8\");
    pDel) {
         ;
    }
    pDoc->LinkEndChild(pDel);
    节点plist
    XMLElement *plistElement = pDoc->NewElement(plist);
    plistElement->SetAttribute(version",1.0");给节点设置属性
    pDoc->LinkEndChild(plistElement);
        节点Dict
        XMLElement *DictElement = pDoc->NewElement(Dict);
        plistElement->LinkEndChild(DictElement);
            节点key
            XMLElement *keyElement = pDoc->NewElement(key);
            keyElement->LinkEndChild(pDoc->NewText(keyText"));给节点设置值
            DictElement->LinkEndChild(keyElement);
            节点String
            XMLElement *StringElement = pDoc->NewElement(String);
            StringElement->LinkEndChild(pDoc->NewText(StringTextLinkEndChild(StringElement);
            节点array
            XMLElement *arrayElemet = pDoc->NewElement(array);
            DictElement->LinkEndChild(arrayElemet);
                for (int i = 0; i<3; i++) {
                    XMLElement *strEle = pDoc->NewElement();
                    strEle->LinkEndChild(pDoc->NewText(icon));
                    arrayElemet->LinkEndChild(strElE);
                }
    
    pDoc->SaveFile(filePath.c_str());保存文件 参数:路径
    pDoc->Print();打印
    delete pDoc;

打印的结果

<?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> Dict> key>keyText</String>StringTextarray> >icon> plist>

二:解析xml

xml文件路径 std::; xmlDoc XMLDocument *pDoc = XMLDocument(); pDoc->LoadFile(filePath.c_str()); 得到跟节点 XMLElement *rootEle = pDoc->RootElement(); 打印节点的值 CCLog(%s:rgb(128,rootEle->GetText()); 节点的第一个属性 const XMLAttribute *attribute = rootEle->FirstAttribute(); 打印属性的名字和值 CCLog(%s %s:rgb(128,attribute->Name(),attribute->Value()); 查找节点的属性值 float value = 0.1f; rootEle->QueryFloatAttribute(:rgb(128,&value); CCLog(%f,value); 设置节点属性值 rootEle->SetAttribute(1.4跟节点的第一个字节点 Dict XMLElement *DictEle = rootEle->FirstChildElement(); Dict下面的子节点 key XMLElement *keyEle = DictEle->打印key节点的值 CCLog(%s,%s:rgb(128,keyEle->Name(),keyEle->key节点的next节点 String XMLElement *StringEle = keyEle->NextSiblingElement(); CCLog(:rgb(128,StringEle->Name(),StringEle->String节点的子节点 XMLElement *nulXmlEle = StringEle->if (NULL == nulXmlElE) { CCLog(String下面没有子点了); } 保存xml pDoc->SaveFile(filePath.c_str());

大佬总结

以上是大佬教程为你收集整理的cocos2d-x使用tinyxml2解析&存储xml全部内容,希望文章能够帮你解决cocos2d-x使用tinyxml2解析&存储xml所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。