Группа вложенных тегов в C++
Однотипная запись - повторяющийся родитель с одним и тем же набором дочерних полей.
Несколько таких родителей часто стоят рядом под одним корнем:
<root>
<entry>
<word>alpha</word>
</entry>
<entry>
<word>beta</word>
</entry>
<entry>
<word>gamma</word>
</entry>
</root>
Каждый родитель обходят отдельно, а текст берут у вложенного тега:
#include <iostream>
#include <string>
#include <pugixml.hpp>
int main() {
std::string xml = R"(<root>
<entry><word>alpha</word></entry>
<entry><word>beta</word></entry>
<entry><word>gamma</word></entry>
</root>)";
pugi::xml_document doc;
doc.load_string(xml.c_str());
pugi::xml_node root = doc.child("root");
for (pugi::xml_node entry : root.children("entry")) {
std::cout << entry.child("word").text().as_string() << "\n";
}
return 0;
}
Дан следующий XML:
<root>
<user>
<name>john</name>
<surn>smit</surn>
</user>
<user>
<name>eric</name>
<surn>wils</surn>
</user>
<user>
<name>kyle</name>
<surn>tayl</surn>
</user>
</root>
Выведите имя и фамилию каждого юзера.
Дан следующий XML:
<root>
<product cost="100" amount="3">
<name>prod1</name>
<category>cat1</category>
</product>
<product cost="200" amount="4">
<name>prod2</name>
<category>cat2</category>
</product>
<product cost="300" amount="5">
<name>prod3</name>
<category>cat3</category>
</product>
</root>
Выведите название, категорию, цену и количество каждого продукта.