作者:小美女阿风 | 来源:互联网 | 2023-05-17 23:10
<了解常用的C++xml解析器(这里只提供2种常用的)http:pugixml.orghttp:www.grinninglizard.comtinyxmlhttps
<
了解常用的C++xml解析器(这里只提供2种常用的)
http://pugixml.org/
http://www.grinninglizard.com/tinyxml/
https://github.com/leethomason/tinyxml2
xml解析还有Cmarkup、rapidxml等这里就不一一提供了,选择一种适合自己的即可,推荐pugixml
>
#include"pugiconfig.hpp"
#include"pugixml.hpp"
#include
#include
#include
using namespace std;
int main()
{
const std::wstring strFilePath = _T("test.xml");
pugi::xml_document doc;
doc.load_file(strFilePath.c_str(),pugi::parse_default,pugi::encoding_utf8);
//pugi::xml_document doc;
//if (!doc.load_file("test.xml")) return -1;
//================================[code_traverse_base_basic====================
pugi::xml_node IP = doc.child("NetConfig").child("IP");
std::cout <
for (pugi::xml_node IPele = IP.first_child(); IPele ; IPele = IPele.next_sibling())
{
for (pugi::xml_attribute attr = IPele.first_attribute(); attr; attr = attr.next_attribute())
{
std::cout <<" " <
}
std::cout <
}
//=================================
pugi::xml_node URL = doc.child("NetConfig").child("URL");
std::cout <
for (pugi::xml_node URLele = URL.first_child(); URLele; URLele = URLele.next_sibling())
{
for (pugi::xml_attribute attr = URLele.first_attribute(); attr; attr = attr.next_attribute())
{
std::cout <<" " <
}
std::cout <
}
//===========================================
pugi::xml_node ipSeg = doc.child("NetConfig").child("ipSeg");
std::cout <
for (pugi::xml_node ipSegele = ipSeg.first_child(); ipSegele; ipSegele = ipSegele.next_sibling())
{
for (pugi::xml_attribute attr = ipSegele.first_attribute(); attr; attr = attr.next_attribute())
{
std::cout <<" " <
}
//std::cout <
for (pugi::xml_node ipSegelePlus = ipSegele.first_child(); ipSegelePlus; ipSegelePlus = ipSegelePlus.next_sibling())
{
std::cout <
}
}
getchar();
}