C++:
Робота з XML

Як це зробити:

Ось простий спосіб розбору XML за допомогою бібліотеки TinyXML-2:

#include <tinyxml2.h>
#include <iostream>

int main() {
    tinyxml2::XMLDocument doc;
    doc.Parse("<root><message>Привіт, Світ!</message></root>");
    const char* content = doc.FirstChildElement("root")->FirstChildElement("message")->GetText();
    std::cout << content << std::endl;
    return 0;
}

Приклад виводу:

Привіт, Світ!

А ось як створити XML файл:

#include <tinyxml2.h>
#include <iostream>

int main() {
    tinyxml2::XMLDocument doc;
    auto* declaration = doc.NewDeclaration();
    doc.InsertFirstChild(declaration);
    auto* root = doc.NewElement("root");
    doc.InsertEndChild(root);
    auto* message = doc.NewElement("message");
    message->SetText("Привіт, Світ!");
    root->InsertEndChild(message);
    doc.SaveFile("output.xml");
    return 0;
}

Це генерує XML файл output.xml із вмістом:

<?xml version="1.0"?>
<root>
    <message>Привіт, Світ!</message>
</root>

Поглиблений занурення

XML був вирішальним в веб-сервісах та зберіганні даних з кінця 90-х. Хоча JSON та YAML зараз більш поширені для конфігурації і взаємодії, XML все ще має велике значення в багатьох корпоративних системах. Розбір XML в C++ може здаватися застарілим з ручним парсингом DOM/SAX. На щастя, бібліотеки на кшталт TinyXML-2 спрощують цей процес. C++ не має вбудованої підтримки XML; бібліотеки на кшталт TinyXML-2, pugixml, або Xerces спрощують складні частини.

Дивіться також