Текст XML-тега в C++
Текст тега - символы между открывающей и закрывающей скобкой узла.
После загрузки строки в pugi::xml_document
значение простого тега берут у найденного
узла:
<root>
<label>alpha</label>
</root>
Поиск по имени и вывод текста в консоль.
У родителя короткая запись - child_value
с именем дочернего тега:
#include <iostream>
#include <string>
#include <pugixml.hpp>
int main() {
std::string xml = R"(<root>
<label>alpha</label>
</root>)";
pugi::xml_document doc;
doc.load_string(xml.c_str());
pugi::xml_node root = doc.child("root");
std::cout << root.child_value("label") << "\n";
return 0;
}
Если данные разнесены по нескольким дочерним тегам, каждый ищут отдельно внутри общего родителя:
#include <iostream>
#include <string>
#include <pugixml.hpp>
int main() {
std::string xml = R"(<root>
<record>
<title>alpha</title>
<code>01</code>
</record>
</root>)";
pugi::xml_document doc;
doc.load_string(xml.c_str());
pugi::xml_node record = doc.child("root").child("record");
std::cout << record.child("title").text().as_string() << "\n";
std::cout << record.child("code").text().as_string() << "\n";
return 0;
}
Дан следующий XML:
<root>
<name>john</name>
</root>
Разберите строку и выведите имя юзера.
Дан следующий XML:
<root>
<user>
<name>john</name>
<surn>smit</surn>
</user>
</root>
Выведите имя и фамилию юзера на отдельных строках.