Я работаю в Ubuntu. У меня есть .h файл с классом и множеством вложенных классов. Я хотел бы создать файл XML из объекта. Может кто-нибудь дать мне библиотеку, которая создает файлы XML, сериализует и десериализует объекты? Я компилирую с g ++.
Попробуйте libxml2 .
Но похоже, что вы хотите сериализовать и десериализовать объект из и в XML. Boost :: serialization может пригодиться. он также поддерживает сериализацию из и в XML.
Здесь вы можете найти пример для Boost :: сериализации с XML.
То, что вы описываете, является привязкой данных XML для C ++. Есть несколько инструментов для того, что вы хотите сделать, см., Например, Инструменты привязки данных XML . Я использовал gSOAP для нескольких проектов C ++, в том числе начиная с файлов C ++ с классами, что очень приятно (другие инструменты заставляют вас начинать с XML-схем или WSDL). Благодаря gSOAP я смог генерировать схемы XML и XML, см., Например, сопоставление типов C / C ++ с XML-схемой .
Возможно, вы захотите изучить привязку данных XML .Основная идея заключается в том, что при наличии XML-схемы программное обеспечение для привязки данных генерирует иерархию классов, соответствующую схеме, и код для сериализации / десериализации (называемый маршалом / анмаршалом).Есть несколько инструментов, которые могут сделать это, gsoap - бесплатный, xmlSpy - один из коммерческих.
Он не сериализуется с XML (который я считаю функцией, лично), но Буферы протокола Google хорошо выполняет сериализацию (в двоичном формате) объектов, которые определены в .proto язык.
.proto
Суперлегкая, простая xml-библиотека - pugixml .
Хотя имейте в виду, что в C ++ нет возможностей отражения, которые есть в .NET. Ни одна библиотека не сгенерирует для вас код сериализации / десериализации (что, я думаю, вы надеялись).
Если вы хотите работать с XML в C ++, вы можете взглянуть на эти проекты
http://xmlsoft.org/
http://www.grinninglizard.com/tinyxml/
http://xerces.apache.org/xerces-c/