C++:
Å jobbe med XML

Hvordan:

Her er en enkel måte å analysere XML på ved hjelp av TinyXML-2-biblioteket:

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

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

Eksempelutskrift:

Hei, Verden!

Og slik oppretter du en XML-fil:

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

int main() {
    tinyxml2::XMLDocument doc;
    auto* deklarasjon = doc.NewDeclaration();
    doc.InsertFirstChild(deklarasjon);
    auto* rot = doc.NewElement("root");
    doc.InsertEndChild(rot);
    auto* melding = doc.NewElement("message");
    melding->SetText("Hei, Verden!");
    rot->InsertEndChild(melding);
    doc.SaveFile("output.xml");
    return 0;
}

Dette genererer en XML-fil output.xml med innhold:

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

Dypdykk

XML har vært avgjørende for webtjenester og datalagring siden slutten av ‘90-tallet. Selv om JSON og YAML nå er mer vanlige for konfig og interop, er XML fortsatt enormt i mange virksomhetssystemer. Å analysere XML i C++ kan føles gammeldags med manuell DOM/SAX-analyse. Heldigvis forenkler biblioteker som TinyXML-2 dette. C++ har ingen innebygd XML-støtte; biblioteker som TinyXML-2, pugixml eller Xerces pakker sammen de vanskelige bitene.

Se Også