c++ linux library for creating an xml and reading from an xml (serialize/ deserialize)

放肆的年华 提交于 2019-12-29 09:41:32

问题


I am working in Ubuntu. I have a .h file with a class and a lot of nested classes. I would like to create an XML file from an object. Can someone please give me a library that creates XML files, serializes, and deserializes objects? I am compiling with g++.


回答1:


Try libxml2.

But it seems like you want to serialize and desirialize an object from and to XML. Boost::serialization might come in handy. it also supports serialization from and to XML.

Here you can find an example for Boost::serialization with XML.




回答2:


If you want to handle XML in C++ you may have a look at these projects

http://xmlsoft.org/

http://www.grinninglizard.com/tinyxml/

http://xerces.apache.org/xerces-c/




回答3:


It doesn't serialize with XML (which I consider a feature, personally), but Google protocol buffers does a good job of serializing (in a binary format) objects that are defined in the .proto language.




回答4:


You may want to explore the XML Data Binding. The main idea is that given an xml schema the data binding software generates a class hierarchy corresponding to the schema, and the code to serialize / unserialize (called marshal / unmarshal). There are several tools that can do this, gsoap is a free one, xmlSpy is one of the commercial ones.




回答5:


What you describe is an XML data binding for C++. There are several tools for what you want to do, see e.g. XML Data Binding Tools. I've used gSOAP for several C++ projects, including starting from C++ files with classes which is really nice (other tools force you to start from XML schemas or WSDLs). With gSOAP I have been able to generate XML schemas and XML, see e.g. map C/C++ types to XML schema.




回答6:


A super-lightweight, simple xml library is pugixml.

Though keep in mind that C++ does not have the reflection capabilities that .NET has. No library will generate the serialization/deserialization code for you (which I guess you hoped for).



来源:https://stackoverflow.com/questions/5977358/c-linux-library-for-creating-an-xml-and-reading-from-an-xml-serialize-deseri

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!