Comment utiliser XML vers C++
- Collez un exemple XML représentatif, idéalement un avec tous les champs optionnels remplis.
- Définissez le nom du type racine, et décidez si vous voulez aussi du code auxiliaire ou uniquement les types.
- Copiez le code C++ généré dans votre projet.
À propos de XML vers C++
Écrire des classes de modèle à la main pour une grosse charge utile XML est fastidieux, et c'est là que les fautes de frappe s'installent. Collez un exemple ici et le générateur déduit la structure : quels champs existent, lesquels sont des objets, lesquels sont des tableaux et quel type a chaque valeur. La sortie est des structs dans un namespace quicktype, avec des fonctions from_json et to_json pour la bibliothèque nlohmann/json.
Le XML est d'abord converti en JSON de la même manière que dans notre outil XML vers JSON : les attributs reçoivent un préfixe @_ et le contenu texte à côté des attributs s'appelle #text. Les types C++ sont générés à partir de ce résultat. La sortie nécessite la bibliothèque single header nlohmann/json, plus un petit bloc d'aide pour les valeurs optionnelles qui est inclus dans la sortie.
Utiliser le code généré
Incluez l'en-tête nlohmann json, puis auto root = nlohmann::json::parse(text).get<quicktype::Root>();.
Les membres optionnels utilisent std::shared_ptr<T> et sont null quand la clé est manquante.