[转]pugixml使用教程
转自: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 | voidRead(){    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 | voidWrite(){    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( inti = 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");}    | 
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号