[轉]pugixml使用教程
阿新 • • 發佈:2018-12-17
轉自: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\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"
);
}
|