项目中建议(要求)使用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