最近项目中的某个功能需要写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开源库的基本用法的更多相关文章

  1. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文  http: ...

  2. Android 第三方开源库收集整理(转)

    原文地址:http://blog.csdn.net/caoyouxing/article/details/42418591 Android开源库 自己一直很喜欢Android开发,就如博客签名一样,  ...

  3. 使用开源库MagicalRecord操作CoreData

      1. 将 MagicalRecord 文件夹拖入到工程文件中,引入 CoreData.frame 框架 2. 在 .pch 文件中引入头文件 CoreData+MagicalRecord.h 注: ...

  4. 在别的地方看的<<给程序员介绍一些C++开源库>>,记录给大家共同学习

    首先说明这篇文章不是出自我手,大家共同学习. 引用地址:http://oss.org.cn/?action-viewnews-itemid-61998. C++开源库,欢迎补充. C++在“商业应用” ...

  5. [转贴]C++开源库

    C++在“商业应用”方面,曾经是天下第一的开发语言,但这一 桂冠已经被java抢走多年.因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用.当Java横行天下之后,MS又突然发力,搞出C# ...

  6. 站在巨人的肩膀上,C++开源库大全

    程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. 标准库 C++ Standard Library:是一系列 ...

  7. 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位网友补充完善

    链接地址:http://www.tuicool.com/articles/jyA3MrU 时间 2015-01-05 10:08:18  我是程序猿,我为自己代言 原文  http://blog.cs ...

  8. Android非常有用的开源库介绍整理

    Android开源库 自己一直很喜欢Android开发,就如博客副标题一样,我想做个好的App. 在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者,而且我会 ...

  9. Autolayout 第三方开源库

    转载自:http://blog.csdn.net/hmt20130412/article/details/46638625 今天才发现CSDN支持markdown了…还是给出新博客地址:Autolay ...

随机推荐

  1. 使用ssh对服务器进行登录

    一.什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会 ...

  2. 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 ...

  3. 【开源java游戏框架libgdx专题】-13-开发工具-地图的使用

    支持libGDX的地图编辑器有很多种,其中比较常用的工具为Tiled地图工具.Tiled是一款非常好用的地图编辑器.下载地址:http://www.mapeditor.org TiledMap类: 又 ...

  4. CSS before和after伪元素

    CSS中有一个特性允许我们添加额外元素而不扰乱文档本身,它们是以CSS选择器的形式出现的,具有标签的表现效果,但是呢又不是真正的标签元素,所以叫做“伪元素”.下面就说一下常见的两个伪元素before和 ...

  5. html.ex.day02

    1.同一个目录内页面跳转 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

  6. (转)DedeCms Runphp 标签中调用其他变量的方法

    DedeCms Runphp 标签中调用其他变量的方法 我们都知道,在DedeCMS中是可以使用PHP的,常见的方法就是if else了,例如模板制作中,我们需要对来源和作者进行判断,如果为空,则提示 ...

  7. SQL Server 2008中数据压缩

    SQL Server 2008中引入了数据压缩的功能,允许在表.索引和分区中执行数据压缩.这样不仅可以大大节省磁盘的占用空间,还允许将更多数据页装入内存中,从而降低磁盘IO,提升查询的性能.当然,凡事 ...

  8. 集成支付宝后出现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 ...

  9. VsCode使用技巧

    VsCode版本1.7.2 1. node智能提示:vscode1.7之前的版本智能提示是采用jsconfig.json方式,在右下角会有小灯泡,点击创建jsconfig.json.1.7之后使用Ty ...

  10. cas sso单点登录系列5_cas单点登录增加验证码功能完整步骤

    转:http://blog.csdn.net/ae6623/article/details/8919718 本篇教程cas-server端下载地址:解压后,直接放到tomcat的webapp目录下就能 ...