У меня есть следующая структура XML-файла
<?xml version="1.0" encoding="UTF-8"?>
<section name="pvf">
<section name="p1">
<item value="92.31335795746914" key="x"/>
<item value="-746.7962776760924" key="y"/>
<item value="400.1902893301479" key="z"/>
<item value="1" key="u1"/>
<item value="7" key="type"/>
<item value="Inlet 2" key="value"/>
</section>
</section>
Мне нравится читать значения x
, y
и z
в std::array<float,3> point
Iможет перебрать все элементы с
for (const auto &v : subtree.get_child(""))
и затем
if (item.get<std::string>("<xmlattr>.key") == "x") {
point[0] = item.get<float>"<xmlattr>.value");
}
, а также для y
и z
.
Есть ли более элегантный способ прочитать это?
Могу ли я использовать обозначение
m_level = pt.get("p1.x", 0);
, как в документации повышения