c ++ linux библиотека для создания xml и чтения из xml (serialize / deserialize) - PullRequest
0 голосов
/ 12 мая 2011

Я работаю в Ubuntu. У меня есть .h файл с классом и множеством вложенных классов. Я хотел бы создать файл XML из объекта. Может кто-нибудь дать мне библиотеку, которая создает файлы XML, сериализует и десериализует объекты? Я компилирую с g ++.

Ответы [ 6 ]

3 голосов
/ 12 мая 2011

Попробуйте libxml2 .

Но похоже, что вы хотите сериализовать и десериализовать объект из и в XML. Boost :: serialization может пригодиться. он также поддерживает сериализацию из и в XML.

Здесь вы можете найти пример для Boost :: сериализации с XML.

0 голосов
/ 03 февраля 2016

То, что вы описываете, является привязкой данных XML для C ++. Есть несколько инструментов для того, что вы хотите сделать, см., Например, Инструменты привязки данных XML . Я использовал gSOAP для нескольких проектов C ++, в том числе начиная с файлов C ++ с классами, что очень приятно (другие инструменты заставляют вас начинать с XML-схем или WSDL). Благодаря gSOAP я смог генерировать схемы XML и XML, см., Например, сопоставление типов C / C ++ с XML-схемой .

0 голосов
/ 12 мая 2011

Возможно, вы захотите изучить привязку данных XML .Основная идея заключается в том, что при наличии XML-схемы программное обеспечение для привязки данных генерирует иерархию классов, соответствующую схеме, и код для сериализации / десериализации (называемый маршалом / анмаршалом).Есть несколько инструментов, которые могут сделать это, gsoap - бесплатный, xmlSpy - один из коммерческих.

0 голосов
/ 12 мая 2011

Он не сериализуется с XML (который я считаю функцией, лично), но Буферы протокола Google хорошо выполняет сериализацию (в двоичном формате) объектов, которые определены в .proto язык.

0 голосов
/ 12 мая 2011

Суперлегкая, простая xml-библиотека - pugixml .

Хотя имейте в виду, что в C ++ нет возможностей отражения, которые есть в .NET. Ни одна библиотека не сгенерирует для вас код сериализации / десериализации (что, я думаю, вы надеялись).

0 голосов
/ 12 мая 2011

Если вы хотите работать с XML в C ++, вы можете взглянуть на эти проекты

http://xmlsoft.org/

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

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

...