スポンサーリンク

XMLパーサーpugixml を試す(読み込み)

https://pugixml.org/

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()を使う } } }

出力

2022-06-15
point
x : 10.0
y : 12.0
z : 15.0
r : 255
g : 0
b : 0
point
x : 20.0
y : 22.0
z : 25.0
r : 0
g : 255
b : 0

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: