tinyxml开源库的基本用法
最近项目中的某个功能需要写xml,由于项目中已经引入了tinyxml,所以不再寻找其他开源库。
前提:你得有个xml对象,声明tinyxml的对象:基于tinyxml的内存管理,TiXmlDocument xmlDoc这样定义更简单;
读:
(1)载入xml:
xmlDoc.LoadFile(filename, TIXML_ENCODING_UTF8);
(2)读根节点:
TiXmlElement* pRootEle = xmlDoc.RootElement();
(3)获取节点:
TiXmlElement* pCommEle = pRootEle->FirstChildElement(“test”);
(4)获取节点的属性:
pCommEle->Attribute(“mode”, &imode);
(5)获取节点的值:
pCommEle->FirstChild()->Value();
写:
要写入xml,首先要弄清楚xml的各个元素在tinyxml的定义。
TiXmlNode:节点; TiXmlComment:注释; TiXmlDeclaration:声明; TiXmlElement:元素; TiXmlText:文字
弄清楚概念后写入就简单了
(1)首先写入声明:
TiXmlDeclaration* pdecl = new TiXmlDeclaration("1.0", "utf-8", "");
xmlDoc.LinkEndChild(pdecl);
(2)写入节点:
TiXmlElement* pESTimeEle = new TiXmlElement(“test”);
pRootEle->LinkEndChild(pESTimeEle);
这里需要说明下:如果写入的是根节点,写入后显示:<test></test>
如果写入的是其他节点,写入后显示:<test />
如果要写入后显示<test></test>,则需要写入空的节点文本,具体操作见(5)
(3)写入注释:
TiXmlComment* pModeComm = new TiXmlComment(“中文”);
pRootEle->LinkEndChild(pModeComm);
这里需要说明的是:如果要写入非英文字符,需要注意字符编码,因为声明中使用utf-8的编码,必须保持一致性。
(4)写入节点文本:
TiXmlText *pIpContent = new TiXmlText(“”);
pESTimeEle->LinkEndChild(pIpContent);
(5)写入节点属性:
pESTimeEle->SetAttribute(“mode”, );
(6)写完后保存:
xmlDoc.SaveFile(“test.xml”)
PS: TiXmlDocument对象建议在栈上申请,其他对象在堆上申请,且不用手工释放,最后析构TiXmlDocument对象时会自动释放。
其他的暂未使用,就不写出来误人子弟了。
欢迎看官们拍砖,已备好头盔。
tinyxml开源库的基本用法的更多相关文章
- 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发
[原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文 http: ...
- Android 第三方开源库收集整理(转)
原文地址:http://blog.csdn.net/caoyouxing/article/details/42418591 Android开源库 自己一直很喜欢Android开发,就如博客签名一样, ...
- 使用开源库MagicalRecord操作CoreData
1. 将 MagicalRecord 文件夹拖入到工程文件中,引入 CoreData.frame 框架 2. 在 .pch 文件中引入头文件 CoreData+MagicalRecord.h 注: ...
- 在别的地方看的<<给程序员介绍一些C++开源库>>,记录给大家共同学习
首先说明这篇文章不是出自我手,大家共同学习. 引用地址:http://oss.org.cn/?action-viewnews-itemid-61998. C++开源库,欢迎补充. C++在“商业应用” ...
- [转贴]C++开源库
C++在“商业应用”方面,曾经是天下第一的开发语言,但这一 桂冠已经被java抢走多年.因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用.当Java横行天下之后,MS又突然发力,搞出C# ...
- 站在巨人的肩膀上,C++开源库大全
程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. 标准库 C++ Standard Library:是一系列 ...
- 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位网友补充完善
链接地址:http://www.tuicool.com/articles/jyA3MrU 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文 http://blog.cs ...
- Android非常有用的开源库介绍整理
Android开源库 自己一直很喜欢Android开发,就如博客副标题一样,我想做个好的App. 在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者,而且我会 ...
- Autolayout 第三方开源库
转载自:http://blog.csdn.net/hmt20130412/article/details/46638625 今天才发现CSDN支持markdown了…还是给出新博客地址:Autolay ...
随机推荐
- 使用ssh对服务器进行登录
一.什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会 ...
- C#解leetcode 238. Product of Array Except Self
Given an array of n integers where n > 1, nums, return an array output such that output[i] is equ ...
- 【开源java游戏框架libgdx专题】-13-开发工具-地图的使用
支持libGDX的地图编辑器有很多种,其中比较常用的工具为Tiled地图工具.Tiled是一款非常好用的地图编辑器.下载地址:http://www.mapeditor.org TiledMap类: 又 ...
- CSS before和after伪元素
CSS中有一个特性允许我们添加额外元素而不扰乱文档本身,它们是以CSS选择器的形式出现的,具有标签的表现效果,但是呢又不是真正的标签元素,所以叫做“伪元素”.下面就说一下常见的两个伪元素before和 ...
- html.ex.day02
1.同一个目录内页面跳转 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...
- (转)DedeCms Runphp 标签中调用其他变量的方法
DedeCms Runphp 标签中调用其他变量的方法 我们都知道,在DedeCMS中是可以使用PHP的,常见的方法就是if else了,例如模板制作中,我们需要对来源和作者进行判断,如果为空,则提示 ...
- SQL Server 2008中数据压缩
SQL Server 2008中引入了数据压缩的功能,允许在表.索引和分区中执行数据压缩.这样不仅可以大大节省磁盘的占用空间,还允许将更多数据页装入内存中,从而降低磁盘IO,提升查询的性能.当然,凡事 ...
- 集成支付宝后出现LaunchServices: ERROR: There is no registered handler for URL scheme alipay
原因如下: There's no problem with your implementation. All those warnings mean is the apps which each UR ...
- VsCode使用技巧
VsCode版本1.7.2 1. node智能提示:vscode1.7之前的版本智能提示是采用jsconfig.json方式,在右下角会有小灯泡,点击创建jsconfig.json.1.7之后使用Ty ...
- cas sso单点登录系列5_cas单点登录增加验证码功能完整步骤
转:http://blog.csdn.net/ae6623/article/details/8919718 本篇教程cas-server端下载地址:解压后,直接放到tomcat的webapp目录下就能 ...