Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
The most elegant way to handle xml serialization
enemyofthedawn last edited by
What's in your opinion the most elegant way to handle xml serialization in Qt?
Should I use
QDomDocumentand similar classes from the same group or maybe
QXmlStreamWriterand linearly serializing, deserializing my custom class? I'd like to note that my class is not
I need simple
loadin classes I need to serialize and deserialize and nothing more.
Should I create some interface (pure-abstract class) for that?
For a larger number of classes that need serialization, i prefer a
base class design with virtual functions allowing for polymorph saving and loading. This base class also give helper functions to save/load a vectors and other convenience functions to minimize the amount of code needed in the child/using classes.
However, for a few classes, nothing wrong with just save / load directly.
I like QDomDocument interface and its easy to construct the tree but it can also be a bit verbose.
QXmlStreamWriter can look really tight but could be messy for
deep/complex structures as its more flatten in expressing the actual (data) tree. (IMHO)
If we go with "KISS", i would go with QXmlStreamWriter and check out how it felt with a few test classes.
stream.writeStartElement("bookmark"); stream.writeAttribute("href", "http://qt.nokia.com/"); stream.writeTextElement("title", "Qt Home"); stream.writeEndElement(); // bookmark