tinyxml2简单使用
发布时间:2020-12-15 22:29:09 所属栏目:百科 来源:网络整理
导读:引入头文件 span style="font-size:18px;"#include "HelloWorldScene.h"#include "tinyxml2/tinyxml2.h"USING_NS_CC;using namespace tinyxml2;/span 生成xml span style="font-size:18px;"void HelloWorld::makeXml(const char* fileName){ //写入路径 std:
引入头文件 <span style="font-size:18px;">#include "HelloWorldScene.h" #include "tinyxml2/tinyxml2.h" USING_NS_CC; using namespace tinyxml2;</span> 生成xml <span style="font-size:18px;">void HelloWorld::makeXml(const char* fileName) { //写入路径 std::string filePath = FileUtils::getInstance()->getWritablePath() + fileName; XMLDocument *pDoc = new XMLDocument(); //头声明 XMLDeclaration *pDecl = pDoc->NewDeclaration("xml=version="1.0" encoding="UTF-8""); pDoc->LinkEndChild(pDecl); //注释 XMLComment *pCom = pDoc->NewComment("test xml"); pDoc->LinkEndChild(pCom); XMLElement *plistEl = pDoc->NewElement("plist"); plistEl->SetAttribute("version","1.0"); plistEl->SetAttribute("age",10); pDoc->LinkEndChild(plistEl); XMLElement *dictEl = pDoc->NewElement("dict"); plistEl->LinkEndChild(dictEl); XMLElement *keyEl = pDoc->NewElement("key"); keyEl->LinkEndChild(pDoc->NewText("keyValue")); dictEl->LinkEndChild(keyEl); XMLElement *arrayEl = pDoc->NewElement("array"); dictEl->LinkEndChild(arrayEl); for (int i = 0; i<2 ; i++) { XMLElement *nameEl = pDoc->NewElement("name"); nameEl->LinkEndChild(pDoc->NewText("array value")); arrayEl->LinkEndChild(nameEl); } pDoc->SaveFile(filePath.c_str()); pDoc->Print(); delete pDoc; }</span> 运行结果为: <span style="font-size:18px;"><?xml=version="1.0" encoding="UTF-8"?> <!--test xml--> <plist version="1.0" age="10"> <dict> <key>keyValue</key> <array> <name>array value</name> <name>array value</name> </array> </dict> </plist></span> 读取xml:
void HelloWorld::parseXml(const char* fileName) { std::string filePath = FileUtils::getInstance()->getWritablePath() + fileName; XMLDocument *pDoc = new XMLDocument(); XMLError errorID = pDoc->LoadFile(filePath.c_str()); if (errorID != 0) { return; } XMLElement *rootEl = pDoc->RootElement(); const XMLAttribute *attribute = rootEl->FirstAttribute(); while (attribute) { CCLOG("name=%s,value = %s",attribute->Name(),attribute->Value()); attribute = attribute->Next(); } XMLElement *dictEl = rootEl->FirstChildElement("dict"); XMLElement *keyEl = dictEl->FirstChildElement("key"); if (keyEl) { CCLOG("key el is = %s",keyEl->GetText()); } XMLElement *arrayEl = keyEl->NextSiblingElement(); XMLElement *childEl = arrayEl->FirstChildElement(); while (childEl) { CCLOG("child el is = %s",childEl->GetText()); childEl = childEl->NextSiblingElement(); } } 结果为: cocos2d: name=version,value = 1.0 cocos2d: name=age,value = 10 cocos2d: key el is = keyValue cocos2d: child el is = array value cocos2d: child el is = array value tinyxml2官网地址在: http://grinninglizard.com/tinyxml2docs/index.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |