How to use XML to C++
- Paste a representative XML sample, ideally one with all the optional fields filled in.
- Set the name of the root type, and decide whether you want helper code as well or types only.
- Copy the generated C++ code into your project.
About XML to C++
Writing model classes by hand for a big XML payload is dull, and it is where typos creep in. Paste a sample here and the generator works out the structure: which fields exist, which are objects, which are arrays and what type each value has. The output is structs in a quicktype namespace, with from_json and to_json functions for the nlohmann/json library.
XML is first converted to JSON the same way as in our XML to JSON tool: attributes get an @_ prefix and text content next to attributes is called #text. The C++ types are generated from that result. The output needs the nlohmann/json single header library, plus a small helper block for optional values that is included in the output.
Using the generated code
Include the nlohmann json header, then auto root = nlohmann::json::parse(text).get<quicktype::Root>();.
Optional members use std::shared_ptr<T> and are null when the key is missing.