加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d-x使用tinyxml2解析&存储xml

发布时间:2020-12-14 16:51:02 所属栏目:百科 来源:网络整理
导读:我用的是2.1.4的cocos2d-x,里面自带有tinyxml2库。好像2.1.0以上都有了 导入头文件: #include "support/tinyxml2/tinyxml2.h" 一:创建xml并保存 // 要储存XML文件的路径 std:: string filePath = CCFileUtils::sharedFileUtils()-getWritablePath() + " wo

我用的是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(%sGetText()); 节点的第一个属性 const XMLAttribute *attribute = rootEle->FirstAttribute(); 打印属性的名字和值 CCLog(%s %sValue()); 查找节点的属性值 float value = 0.1f; rootEle->QueryFloatAttribute(value); CCLog(%f,value); 设置节点属性值 rootEle->SetAttribute(1.4跟节点的第一个字节点 dict XMLElement *dictEle = rootEle->FirstChildElement(); dict下面的子节点 key XMLElement *keyEle = dictEle->打印key节点的值 CCLog(%s,%skey节点的next节点 string XMLElement *stringEle = keyEle->NextSiblingElement(); CCLog(string节点的子节点 XMLElement *nulXmlEle = stringEle->if (NULL == nulXmlEle) { CCLog(string下面没有子点了); } 保存xml pDoc->SaveFile(filePath.c_str());

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读