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");



}

    

 

你可能感兴趣的:(xml)