项目中建议(要求)使用pugi解析xml,那么今天就来学习一下pugi。
下载
下载网址:https://pugixml.org
使用方式:
官网介绍第一句称自己为轻量化、简单、快速的c++下xml解析工具,实际使用上手难度确实低。
将src内的pugiconfig.hpp、pugixml.cpp、pugixml.hpp放入工程中,就可以使用了,就是这么简单。
简单示例:pugi解析xml简单字符串
这是一个超简单示例:
#include <iostream>#include "pugiconfig.hpp"#include "pugixml.hpp"#include <string>using namespace std;int main(){char xmlStr[1024] = "<?xml version=\"1.0\"?>\r\n""<Response>\r\n""<CmdType>DeviceInfo</CmdType>\r\n""<SN>17430</SN>\r\n""<DeviceID>102934857689237</DeviceID>\r\n""<Manufacturer>Happtimesoft</Manufacturer>\r\n""<Model>HTIPC</Model>\r\n""</Response>\r\n";pugi::xml_document doc;doc.load_string(xmlStr);pugi::xml_node response = doc.child("Response");//遍历for (pugi::xml_node node = response.first_child(); node != nullptr; node = node.next_sibling()){//cout << node.child_value() << endl; //两种访问方式cout << node.name() << ": " << node.text().as_string() << endl;}//特定访问pugi::xml_node sn = response.child("SN");cout << "SN: " << sn.child_value() << endl;system("pause");return 0;}
简单示例:pugi解析简单xml文件
xml文件内容:
<?xml version="1.0"?><Response><CmdType>DeviceInfo</CmdType><SN>17430</SN><DeviceID>102934857689237</DeviceID><Manufacturer>Happtimesoft</Manufacturer><Model>HTIPC</Model></Response>
代码:(和上面的代码简直一毛一样)
#include <iostream>#include "pugiconfig.hpp"#include "pugixml.hpp"#include <string>using namespace std;int main(){pugi::xml_document doc;doc.load_file("test.xml");pugi::xml_node response = doc.child("Response");//遍历for (pugi::xml_node node = response.first_child(); node != nullptr; node = node.next_sibling()){//cout << node.child_value() << endl; //两种访问方式cout << node.name() << ": " << node.text().as_string() << endl;}//特定访问pugi::xml_node sn = response.child("SN");cout << "SN: " << sn.child_value() << endl;system("pause");return 0;}
————————————————
版权声明:本文为CSDN博主「这个名字不知道有没有人用啊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43272766/article/details/89875062
