pugi::xml_document принимает корень через append_child.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpXmBld 645 of 696 menu
◀ ▶

Сборка XML-документа в C++

Сборка документа - создание узлов в памяти без готовой строки на входе.

Пустой pugi::xml_document принимает корень через append_child, а дочерние теги добавляют к уже созданному узлу:

#include <iostream> #include <pugixml.hpp> int main() { pugi::xml_document doc; pugi::xml_node root = doc.append_child("root"); pugi::xml_node note = root.append_child("note"); note.append_attribute("lang") = "en"; note.text().set("memo"); return 0; }

Текст задают через text, атрибут - через append_attribute. Готовое дерево превращают в строку и выводят через поток:

#include <iostream> #include <sstream> #include <string> #include <pugixml.hpp> int main() { pugi::xml_document doc; pugi::xml_node root = doc.append_child("root"); pugi::xml_node note = root.append_child("note"); note.append_attribute("lang") = "en"; note.text().set("memo"); std::ostringstream out; doc.save(out, "", pugi::format_raw); std::cout << out.str() << "\n"; return 0; }

Соберите документ с корнем catalog и одним тегом book с атрибутом isbn "978-0" и текстом "C++ guide". Выведите получившуюся строку XML.

Соберите корень shipment и два тега crate с атрибутами weight "10" и "15". Внутри каждого crate добавьте label с текстами "A" и "B". Выведите итоговый XML одной строкой вывода.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить