C++:
Lavorare con XML

Come fare:

Ecco un modo semplice per analizzare XML utilizzando la libreria TinyXML-2:

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

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

Output di esempio:

Ciao, Mondo!

E questo è come si crea un file XML:

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

int main() {
    tinyxml2::XMLDocument doc;
    auto* dichiarazione = doc.NewDeclaration();
    doc.InsertFirstChild(dichiarazione);
    auto* radice = doc.NewElement("root");
    doc.InsertEndChild(radice);
    auto* messaggio = doc.NewElement("message");
    messaggio->SetText("Ciao, Mondo!");
    radice->InsertEndChild(messaggio);
    doc.SaveFile("output.xml");
    return 0;
}

Questo genera un file XML output.xml con contenuti:

<?xml version="1.0"?>
<root>
    <message>Ciao, Mondo!</message>
</root>

Approfondimento

XML è stato fondamentale nei servizi web e nello stoccaggio dati dalla fine degli anni ‘90. Sebbene JSON e YAML siano ora più comuni per la configurazione e l’interop, XML è ancora molto diffuso in molti sistemi aziendali. Analizzare XML in C++ può sembrare antiquato con l’analisi manuale DOM/SAX. Fortunatamente, biblioteche come TinyXML-2 lo semplificano. C++ non ha supporto integrato per XML; biblioteche come TinyXML-2, pugixml o Xerces semplificano le parti più complicate.

Vedi Anche