So verwenden Sie XML zu C++
- Fügen Sie ein repräsentatives XML-Beispiel ein, idealerweise eines, in dem alle optionalen Felder gefüllt sind.
- Legen Sie den Namen des Wurzeltyps fest und entscheiden Sie, ob Sie auch Hilfscode oder nur Typen haben möchten.
- Kopieren Sie den erzeugten C++-Code in Ihr Projekt.
Über XML zu C++
Modellklassen für eine große XML-Payload von Hand zu schreiben, ist öde, und genau dort schleichen sich Tippfehler ein. Fügen Sie hier ein Beispiel ein, und der Generator ermittelt die Struktur: welche Felder es gibt, welche Objekte, welche Arrays sind und welchen Typ jeder Wert hat. Die Ausgabe sind Structs in einem quicktype-Namespace, mit from_json- und to_json-Funktionen für die Bibliothek nlohmann/json.
XML wird zuerst auf dieselbe Weise in JSON umgewandelt wie in unserem Tool XML zu JSON: Attribute erhalten das Präfix @_, und Textinhalt neben Attributen heißt #text. Aus diesem Ergebnis werden die C++-Typen erzeugt. Die Ausgabe benötigt die Single-Header-Bibliothek nlohmann/json sowie einen kleinen Hilfsblock für optionale Werte, der in der Ausgabe enthalten ist.
Den erzeugten Code verwenden
Binden Sie den nlohmann-json-Header ein und verwenden Sie dann auto root = nlohmann::json::parse(text).get<quicktype::Root>();.
Optionale Member verwenden std::shared_ptr<T> und sind null, wenn der Schlüssel fehlt.