C++:
XML:n käsittely

Kuinka:

Tässä on yksinkertainen tapa jäsentää XML käyttäen TinyXML-2-kirjastoa:

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

int main() {
    tinyxml2::XMLDocument doc;
    doc.Parse("<root><message>Hei, maailma!</message></root>");
    const char* sisältö = doc.FirstChildElement("root")->FirstChildElement("message")->GetText();
    std::cout << sisältö << std::endl;
    return 0;
}

Esimerkkituloste:

Hei, maailma!

Ja näin luot XML-tiedoston:

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

int main() {
    tinyxml2::XMLDocument doc;
    auto* julistus = doc.NewDeclaration();
    doc.InsertFirstChild(julistus);
    auto* juuri = doc.NewElement("root");
    doc.InsertEndChild(juuri);
    auto* viesti = doc.NewElement("message");
    viesti->SetText("Hei, maailma!");
    juuri->InsertEndChild(viesti);
    doc.SaveFile("tulos.xml");
    return 0;
}

Tämä luo XML-tiedoston tulos.xml sisällöllä:

<?xml version="1.0"?>
<root>
    <message>Hei, maailma!</message>
</root>

Syväsukellus

XML on ollut keskeisessä osassa web-palveluissa ja datan tallennuksessa 90-luvun loppupuolelta lähtien. Vaikka JSON ja YAML ovat nykyään yleisempiä konfiguraatioon ja yhteentoimivuuteen, XML on edelleen valtava monissa yritysjärjestelmissä. XML:n jäsentäminen C++:ssa voi tuntua vanhanaikaiselta manuaalisen DOM/SAX-jäsentämisen kanssa. Onneksi kirjastot kuten TinyXML-2 yksinkertaistavat sitä. C++:ssa ei ole sisäänrakennettua XML-tukea; kirjastot kuten TinyXML-2, pugixml tai Xerces kääriytyvät vaikeiden osien ympärille.

Katso myös