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

}
    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM