Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpXmInr 637 of 696 menu
◀ ▶

Введение в XML в C++

Текстовый формат структурированных данных - это XML.

Его часто передают между сервисами или сохраняют в файле. Разметка похожа на HTML, но имена тегов и атрибутов задает автор схемы.

Документ начинается с объявления версии и содержит один корневой тег, внутри которого лежит все содержимое. Каждый тег может иметь атрибуты в угловых скобках и текст между открывающим и закрывающим именем:

<?xml version="1.0"?> <root> <city code="spb">Saint Petersburg</city> </root>

Здесь корень - root, внутри тег city с атрибутом code и текстом названия. В C++ такой текст удобно разбирать библиотекой pugixml: заголовок pugixml.hpp, тип pugi::xml_document и загрузка строки через load_string.

Короткий разбор той же строки в программе выглядит так:

#include <iostream> #include <string> #include <pugixml.hpp> int main() { std::string xml = R"(<?xml version="1.0"?> <root> <city code="spb">Saint Petersburg</city> </root>)"; pugi::xml_document doc; doc.load_string(xml.c_str()); pugi::xml_node root = doc.child("root"); std::cout << root.name() << "\n"; pugi::xml_node city = root.child("city"); std::cout << city.attribute("code").as_string() << "\n"; std::cout << city.text().as_string() << "\n"; return 0; }

Метод child находит первый дочерний узел по имени, attribute открывает атрибут, а text возвращает текст внутри тега. Дальнейшие уроки опираются на эту цепочку.

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