Атрибуты группы тегов в C++
Группа с атрибутами - несколько одноименных узлов, у каждого свой текст и свои атрибуты.
Цикл по children сочетает
text и attribute для
каждого узла:
<root>
<lot sku="a1" qty="2">bolt</lot>
<lot sku="b2" qty="5">nut</lot>
<lot sku="c3" qty="1">washer</lot>
</root>
Полный обход группы в программе:
#include <iostream>
#include <string>
#include <pugixml.hpp>
int main() {
std::string xml = R"(<root>
<lot sku="a1" qty="2">bolt</lot>
<lot sku="b2" qty="5">nut</lot>
<lot sku="c3" qty="1">washer</lot>
</root>)";
pugi::xml_document doc;
doc.load_string(xml.c_str());
pugi::xml_node root = doc.child("root");
for (pugi::xml_node lot : root.children("lot")) {
std::cout << lot.text().as_string() << "\n";
std::cout << lot.attribute("sku").as_string() << "\n";
std::cout << lot.attribute("qty").as_int() << "\n";
}
return 0;
}
Дан следующий XML:
<root>
<product cost="100" amount="3">
prod1
</product>
<product cost="200" amount="4">
prod2
</product>
<product cost="300" amount="5">
prod3
</product>
</root>
Выведите название, цену и количество каждого продукта.