博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tinyxml开源库的基本用法
阅读量:5268 次
发布时间:2019-06-14

本文共 1331 字,大约阅读时间需要 4 分钟。

最近项目中的某个功能需要写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(“00”);pESTimeEle->LinkEndChild(pIpContent);

(5)写入节点属性:

pESTimeEle->SetAttribute(“mode”, 12);

(6)写完后保存:

xmlDoc.SaveFile(“test.xml”)

 PS: TiXmlDocument对象建议在栈上申请,其他对象在堆上申请,且不用手工释放,最后析构TiXmlDocument对象时会自动释放。

其他的暂未使用,就不写出来误人子弟了。

欢迎看官们拍砖,已备好头盔。

转载于:https://www.cnblogs.com/superbi/p/4972048.html

你可能感兴趣的文章
linux文件编码查看与修改
查看>>
[Java] 系统环境变量配置
查看>>
坏的事情不都会带来坏的结果
查看>>
RPC的基础:调研EOS插件http_plugin
查看>>
HIT1946 希尔伯特分形曲线(dfs)
查看>>
第二次团队冲刺第二天
查看>>
青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 2
查看>>
bzoj 2257 (JSOI 2009) 瓶子与燃料
查看>>
11)Java abstract class 和 interface
查看>>
使用xrdp或Xmanager 远程连接 CentOS6
查看>>
SEH简单研究
查看>>
Linux误删恢复
查看>>
Unity调用Windows窗口句柄,选择文件和目录
查看>>
HashMap循环遍历方式
查看>>
React Native 入门 调试项目
查看>>
MySQL数据库 基本操作
查看>>
请大家规范电子邮件用法养成好的邮件习惯
查看>>
微信游戏和微信公众号小说如何有效做好域名防封,给大家分享我的有效经验...
查看>>
前端跨域知识总结
查看>>
C# 通过 Quartz .NET 实现 schedule job 的处理
查看>>