博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]pugixml使用教程
阅读量:6683 次
发布时间:2019-06-25

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

转自:

 

pugixml介绍

pugixml是一个高性能、轻量级并且简单易用的xml解析库,支持UTF8 encoding、Little-endian UTF16、Big-endian UTF16、UTF16 with native endianness、Little-endianUTF32、Big-endian UTF32和UTF32with native endianness字符集,支持跨平台。

下载地址:

使用示例

Pugixml共三个文件,包含到工程中即可。

下面我们要读写如下结构的students.xml文档。

张三
李四
王五

  

 

将上面xml信息读取的代码

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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中的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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"
);
 
}
    

 

转载地址:http://cmxao.baihongyu.com/

你可能感兴趣的文章
linux下activemq异常退出,重启失败
查看>>
WordPress条件判断标签(Conditional Tags)手册
查看>>
【05】中级:翻页采集(以微博博主主页采集为例)
查看>>
iOS不规则按钮的响应事件的处理方法
查看>>
Linux下密码过期时间设置
查看>>
ScrollView的任意位置定位,scrollTo和scrollBy无效
查看>>
contentResolver.Query()的四个参数
查看>>
神经质人格
查看>>
tensorflow example
查看>>
解密Redis持久化
查看>>
linux磁盘管理系列三:LVM的使用
查看>>
phpize的用处
查看>>
PHP日历代码:一个循环还是两个循环
查看>>
storm 读取kafka数据 单机测试
查看>>
使用rebar3创建erlang项目通过cowboy与页面交互
查看>>
HOW TO INSTALL XEN HYPERVISOR ON DEBIAN 9 “STRETCH” AND DEBIAN 8 “JESSIE” LINUX SYSTEMS
查看>>
tomcat问题
查看>>
基础算法----判断字符串是否为另一个字符串的真子集
查看>>
公用外部函数接口——CFFI
查看>>
ios原生扫描二维码功能,中文不乱码,支持ios7及以上
查看>>