MIT LicenseのXMLパーサー。
#include <iostream> #include "pugixml.hpp"
const char* data() { return R"( <?xml version="1.0"?> <data date="2022-06-15"> <point> <x>10.0</x> <y>12.0</y> <z>15.0</z> <r>255</r> <g>0</g> <b>0</b> </point> <point> <x>20.0</x> <y>22.0</y> <z>25.0</z> <r>0</r> <g>255</g> <b>0</b> </point> </data> )"; }
int main() { pugi::xml_document doc; //pugi::xml_parse_result result = doc.load_file("tree.xml"); //ファイルから読み込む場合 pugi::xml_parse_result result = doc.load_string(data()); std::cout << doc.child("data").attribute("date").value() << std::endl; for (auto point : doc.child("data").children("point")) { std::cout << point.name() << std::endl; for (auto val : point.children()) { std::cout << val.name() << " : " << val.child_value() << std::endl;// 値の取得にはtext()かchild_value()を使う } } }