pugixml使用教程
pugixml介绍
pugixml是一个高性能、轻量级并且简单易用的xml解析库,支持UTF8 encoding、Little-endian UTF16、Big-endian UTF16、UTF16 with native endianness、Little-endianUTF32、Big-endian UTF32和UTF32with native endianness字符集,支持跨平台。
下载地址:http://pugixml.org/
使用示例
Pugixml共三个文件,包含到工程中即可。
下面我们要读写如下结构的students.xml文档。
<Root>
<students>
<student>
<name>张三</name>
<sex>男</sex>
</student>
<student>
<name>李四</name>
<sex>男</sex>
</student>
<student>
<name>王五</name>
<sex>女</sex>
</student>
</students>
</Root>
将上面xml信息读取的代码
void Read() { pugi::xml_document doc; if (doc.load_file("students.xml",pugi::parse_default,pugi::encoding_utf8)) { pugi::xml_node root_node = doc.child(_T("Root")); pugi::xml_node students_node = root_node.child(_T("students ")); // 分别读取每个学生信息 for (pugi::xml_node student_node = students_node.child(_T("student")); student _node; student _node = student _node.next_sibling(_T("student "))) { pugi::xml_node name_node = students_node.child(_T("name")); printf("name : %s\n",name_node.first_child().value()); pugi::xml_node sex_node = student_node.child(_T("sex")); printf("sex: %s\n",sex_node.first_child().value()); } } }
将m_studentList中的学生信息保存到student.xml中的代码
void Write() { pugi::xml_document doc; pugi::xml_node root_node = doc.append_child(_T("Root")); pugi::xml_node students_node = root_node.append_child(_T("students")); // 分别存入每个学生的信息
for ( int i = 0; i < m_studentList.size();i++)
{ Student student = m_ studentList.at(i); pugi::xml_node student_node = students_node.append_child(_T("student")); pugi::xml_node name_node = student _node.append_child(_T("name")); name_node.append_child(pugi::node_pcdata).set_value((student.GetstrName().c_str())); pugi::xml_node sex_node = student _node.append_child(_T("sex")); sex _node.append_child(pugi::node_pcdata).set_value((student.GetstrSex().c_str())); } doc.save_file("students.xml"); }
pugixml使用教程的更多相关文章
- [转]pugixml使用教程
转自:https://www.cnblogs.com/ltm5180/p/3989125.html pugixml介绍 pugixml是一个高性能.轻量级并且简单易用的xml解析库,支持UTF8 en ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境
一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
随机推荐
- dt dd 如何在同一行上
<style> dl{clear:left;} dt,dd{float:left;} </style> <dl> <dt>test </dt> ...
- Java中的移位操作符
记住所有的移动位数,针对的都是补码来讲的,所以要先将十进制整数转换成补码后,然后再来进行移位操作 移位操作 还要注意类型的约束条件,例如int,移动范围是0-31位,所以看补码只能看最后五位,这才是有 ...
- C#中实现邮件发送功能
public static int sendmail(string to, string body,string subject) { try { int nContain = 0; ///添加发件人 ...
- 安装zabbix2.2.3
系统版本:CentOS 6.3_x86_64 zabbix版本:zabbix-2.2.3 zabbix服务端IP:172.16.10.72 1.yum安装LAMP环境 # yum -y install ...
- Ignoring a Test
如果我们不想让某个测试失败,我们仅仅想要忽略它,那么我们可以暂时的disable它. 有三种方法来忽略一个测试: 把方法注释掉 删除 @Test 注释 增加 @Ignore注释: @Ignore([i ...
- hdoj 2102 A计划
A计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- Tomcat配置NIO
tomcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态. ...
- 代码对齐 分类: C#小技巧 2014-04-17 14:45 166人阅读 评论(0) 收藏
开发项目时,为了是代码层次清晰.美观,常常需要调整多行,使之对齐.在网上也看到一些方法,感觉不好用,偶尔发现一个小技巧. (1)多行代码同时右移 同时选中几行,按"Tab"键,就会 ...
- 【微信公众号】将微信公众号消息里的FromUserName即OpenID转成UnionID
最近在调试微信公众号开发者模式,处理公众号消息,收到如下回调消息内容 <xml><ToUserName><![CDATA[gh_29********21]]>< ...
- Eclipse导入Gradle时报错:SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable
百度查到http://stackoverflow.com/questions/19794200/gradle-android-and-the-android-home-sdk-location 按照其 ...