C++:
Trabalhando com XML

Como:

Aqui está uma maneira simples de analisar XML usando a biblioteca TinyXML-2:

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

int main() {
    tinyxml2::XMLDocument doc;
    doc.Parse("<root><message>Olá, Mundo!</message></root>");
    const char* conteudo = doc.FirstChildElement("root")->FirstChildElement("message")->GetText();
    std::cout << conteudo << std::endl;
    return 0;
}

Saída de exemplo:

Olá, Mundo!

E assim se cria um arquivo XML:

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

int main() {
    tinyxml2::XMLDocument doc;
    auto* declaracao = doc.NewDeclaration();
    doc.InsertFirstChild(declaracao);
    auto* raiz = doc.NewElement("root");
    doc.InsertEndChild(raiz);
    auto* mensagem = doc.NewElement("message");
    mensagem->SetText("Olá, Mundo!");
    raiz->InsertEndChild(mensagem);
    doc.SaveFile("saida.xml");
    return 0;
}

Isso gera um arquivo XML saida.xml com o conteúdo:

<?xml version="1.0"?>
<root>
    <message>Olá, Mundo!</message>
</root>

Aprofundamento

O XML tem sido fundamental em serviços web e armazenamento de dados desde o final dos anos 90. Enquanto JSON e YAML agora são mais comuns para configuração e interop, o XML ainda é enorme em muitos sistemas empresariais. Analisar XML em C++ pode parecer algo antigo com a análise manual de DOM/SAX. Felizmente, bibliotecas como TinyXML-2 simplificam isso. C++ não tem suporte embutido para XML; bibliotecas como TinyXML-2, pugixml, ou Xerces resolvem as partes difíceis.

Veja Também