tinyxml2简单使用
引入头文件
<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
tinyxml2简单使用的更多相关文章
- 用TinyXml2读取XML文件的一个简单Demo
废话少说直接上代码,需要的人自然一看便懂,对于第一次接触TinyXml2的人来说还是有帮助的. <?xml version="1.0"?> <Table name ...
- TinyXml和tinyxml2
C++操作xml没有标准库的支持,TinyXml是个不错的xml操作库,以前总是使用TinyXml读写xml,但是最近对大量xml进行读写时,速度真的是有点慢,特别是在调试时,每次启动读xml就要好长 ...
- 达到XML简单的动态配置
今天写的XML相关内容:随着上述眼前的小项目(等级类别)由于地图每个级别.因此,让他动态读取XML内容,这样的变化只能看到XML档. 简单的想法:第一次使用UserDefault类写入文件 UserD ...
- 7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml
数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDef ...
- TinyXML2的使用
-----------------------------------------------------------------2015年7月21日16:37:53----------------- ...
- TinyXML2 的使用
TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译.这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树 ...
- tinyxml2使用
项目中遇到一个问题,C/C++需要与JAVA通信,JAVA方已经使用了XML序列化传输.本可以考虑JSON/GOOGLE PROTOCOL BUFFER的,但为了使JAVA方不做过多改动,坚持使用XM ...
- TinyXML2使用教程(转)
原文转自 http://blog.csdn.net/K346K346/article/details/48750417 1.TinyXML2概述 TinyXML2是simple.small.effic ...
- 使用tinyxml2库解析xml
tinyxml2简介 tinyxml2是c++编写的轻量级的xml解析器,而且是开放源代码的,在一些开源的游戏引擎中用的比较多.源码托管在github上. 源码地址:https://github.co ...
随机推荐
- minimum-moves-to-equal-array-elements
https://leetcode.com/problems/minimum-moves-to-equal-array-elements/ package com.company; import jav ...
- Android用AutoCompleteTextView实现搜索历史记录提示
简介 在我们平常上网的时候经常会用到谷歌或百度,在输入框中输入我们想要输入的信息就会出现其他与其相关的提示信息,非常方便.这种效果在 Android中是用AutoCompleteTextView实现的 ...
- UVa 10106 Product
高精度乘法问题,WA了两次是因为没有考虑结果为0的情况. Product The Problem The problem is to multiply two integers X, Y. (0& ...
- HDU 4513 吉哥系列故事——完美队形II
变形的Manacher算法,在扩展的时候要加入限制条件,满足题目中说的从左到中间身高不减. 其他地方倒是没有什么改动.. //#define LOCAL #include <iostream&g ...
- WEBUS2.0 In Action - 搜索操作指南 - (4)
上一篇:WEBUS2.0 In Action - 搜索操作指南(3) 6. 搜索多个索引 为了提升性能, 我们可以从多个索引同时进行搜索, Webus.Search.MultiSearcher提供了相 ...
- dede 5.7进后台卡死解决办法
注释后台文件dede/templets/index_body.htm(大概在第18行) <script type="text/javascript"> function ...
- 【转】Mac OS X开机启动Path had bad permissions错误解决方案
原文网址:http://www.07net01.com/2015/07/884646.html 最近在安装mongodb的时候遇到了上述提示,在国内各大网站寻找解决方案无果,于是果断查看国外的网站,终 ...
- hadoop的API对HDFS上的文件访问
这篇文章主要介绍了使用hadoop的API对HDFS上的文件访问,其中包括上传文件到HDFS上.从HDFS上下载文件和删除HDFS上的文件,需要的朋友可以参考下hdfs文件操作操作示例,包括上传文件到 ...
- Android Window 9问9答
1.简述一下window是什么?在android体系里 扮演什么角色? 答:window就是一个抽象类,他的实现类是phoneWindow.我们一般通过windowManager 来访问window. ...
- Java常用类:String
一.介绍 String:不可变的Unicode字符序列 例如:"Java" 就是4个Unicode字符J,a,v,a组成的 Java没有内置的字符串类型,而是在标准的J ...