C++:
Travailler avec XML

Comment faire :

Voici une manière simple d’analyser le XML en utilisant la bibliothèque TinyXML-2 :

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

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

Exemple de sortie :

Bonjour, le monde !

Et voici comment vous créez un fichier XML :

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

int main() {
    tinyxml2::XMLDocument doc;
    auto* declaration = doc.NewDeclaration();
    doc.InsertFirstChild(declaration);
    auto* racine = doc.NewElement("root");
    doc.InsertEndChild(racine);
    auto* message = doc.NewElement("message");
    message->SetText("Bonjour, le monde !");
    racine->InsertEndChild(message);
    doc.SaveFile("output.xml");
    return 0;
}

Ceci génère un fichier XML output.xml avec le contenu :

<?xml version="1.0"?>
<root>
    <message>Bonjour, le monde !</message>
</root>

Exploration approfondie

Le XML a été essentiel dans les services web et le stockage de données depuis la fin des années 90. Alors que le JSON et le YAML sont maintenant plus courants pour la configuration et l’interopérabilité, le XML est toujours très utilisé dans de nombreux systèmes d’entreprise. Analyser le XML en C++ peut sembler vieux jeu avec l’analyse manuelle du DOM/SAX. Heureusement, des bibliothèques comme TinyXML-2 le simplifient. C++ ne dispose pas de support XML intégré ; des bibliothèques comme TinyXML-2, pugixml, ou Xerces enveloppent les parties difficiles.

Voir Aussi