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

Cocos2d-x tinyxml2用于xml的解析,自动生成xml文件和解析xml文件

发布时间:2020-12-14 16:31:02 所属栏目:百科 来源:网络整理
导读:Cocos2d-x 已经加入了 tinyxml2 用于xml的解析。3.0版本位于 external/tinyxml2 下。2.x版本位于 cocos2dx/support/tinyxml2 下 生成xml文档 引入头文件 #include "tinyxml2/tinyxml2.h" using namespace tinyxml2 ; xml文档生成 void HelloWorld :: makeXML

Cocos2d-x 已经加入了tinyxml2用于xml的解析。3.0版本位于external/tinyxml2下。2.x版本位于cocos2dx/support/tinyxml2

生成xml文档

  1. 引入头文件

    #include "tinyxml2/tinyxml2.h"
    using namespace tinyxml2;
  2. xml文档生成

    void  HelloWorld::makeXML(constchar *fileName)
    {
    std::string filePath = FileUtilsgetInstance()->getWritablePath()+ fileName;
    XMLDocumentpDoc newXMLDocument();
    //xml 声明(参数可选)XMLDeclarationpDel  pDoc->NewDeclaration("xml version="1.0" encoding="UTF-8"");
    pDocLinkEndChild(pDel//添加plist节点XMLElementplistElement NewElement"plist"
    plistElementSetAttribute"version","1.0"plistElementXMLCommentcommentElement NewComment"this is xml comment"commentElement//添加dic节点dicElement "dic"dicElement//添加key节点keyElement "key"
    keyElementpDocNewText"Text"));
    dicElementkeyElementarrayElement "array"arrayElementforint i  0 i<3++)
        elm "name"
        elm"Cocos2d-x"
        arrayElementelm}SaveFilefilePath.c_str());Printdelete}
  3. 打印结果

    <?xml version="1.0" encoding"UTF-8"?>
    <plist version="1.0"><!--this is xml comment--><dic>
        <key>Text</key><array>
            <name>Cocos2d-x</name></array></dic></plist>

上面代码使用tinyxml简单生成了一个xml文档。

解析xml

下面我们就来解析上面创建的xml文档

    ;
  1. xml解析

    parseXMLXMLError errorId LoadFileiferrorId !=
        //xml格式错误
        returnrootEle RootElement//获取第一个节点属性XMLAttributeattribute  rootEleFirstAttribute//打印节点属性名和值
    log"attribute<em>name = %s,attribute</em>value = %s" attributeName(),102)">Value());</p>dicEle FirstChildElementkeyEle  dicElekeyEle
        log"keyEle Text= %s" keyEleGetTextarrayEle NextSiblingElementchildEle  arrayElewhile childEle "childEle Text= %s" childEle
        childEle }

    在节点解析过程中,注意对获取到的节点进行判空处理。

  2. 解析结果打印

    cocos2d: attribute_name  versionattribute_value 1.0
    cocos2d keyEle TextText childEle Cocos2d-x
    cocos2dx

小结

上面的简单示例,演示了如何使用tinyxml进行xml文档生成和解析。更多详细的帮助请参考 tinyxml帮助文档http://grinninglizard.com/tinyxml2docs/index.html


源地址:http://www.tairan.com/archives/7340

(编辑:李大同)

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

    推荐文章
      热点阅读