转自:https://www.cnblogs.com/ltm5180/p/3989125.html
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信息读取的代码
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
" ,name_node.first_child().value()); pugi::xml_node sex_node = student_node.child(_T( "sex" )); printf ( "sex: %s
" ,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" ); } |