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 ...
随机推荐
- Android(java)学习笔记234: 服务(service)之音乐播放器
1.我们播放音乐,希望在后台长期运行,不希望因为内存不足等等原因,从而导致被gc回收,音乐播放终止,所以我们这里使用服务Service创建一个音乐播放器. 2.创建一个音乐播放器项目(使用服务) (1 ...
- div如何加滚动条
<div style="position:absolute; height:400px; overflow:auto"></div>div 设置滚动条显示: ...
- javascript MD5加密
/* * Javascript MD5 library - version 0.4 * * Coded (2011) by Luigi Galli - LG@4e71.org - * http://f ...
- DownloadProvider调试
由于身边的同事离职,最近又接手了一个模块,DownloadProvider, 也就是安卓中自带的下载管理.此模块的代码量比较少,但是最近阅读代码却发现还是由不少知识点的.之前同事在此模块做了一个关于D ...
- WinForm窗体之间传值
当程序需要将一个窗体中的一些信息传给另一个窗体并让其使用时,就需要用到这个知识点 方法一:通过接受参数的窗体的构造函数传值 例:现有Form1和Form2两个窗体,二者都包含一个文本框,Form1还包 ...
- AutoLayout适配
http://www.raywenderlich.com/113768/adaptive-layout-tutorial-in-ios-9-getting-started iOS布局和屏幕适配的一点总 ...
- Swift - 13 - 字符串和Character
//: Playground - noun: a place where people can play import UIKit var str = "hi" // 字符串拼接 ...
- python自学笔记
python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...
- MTP设备无法安装驱动的解决办法
1,进入设备管理器右击带黄色问号的MTP,选择“属性”,“详细信息”“设备范例 ID”(用Ctrl+C复制). 2,找到c:\windows\inf\wpdmtp.inf打开(或者通过运行打开),找到 ...
- Shell 脚本编程笔记(一) Hello Shell
最近不断在接触Linux操作系统,对它一个终端走天下的特性感到十分新奇和伟大.同时也被各种命令折磨的死去活来...公司的一个老同事给我讲,在公司的极品geek宅都是只用一个黑黑的框完成一切的.结果我一 ...