C++ Object to XML用于通信

San*_*ero 6 c++ xml serialization xml-serialization

我正在寻找一种简单的方法将C++中的对象转换为XML字符串表示,这样我就可以与服务器进行通信.

例如,让我们说我有一个对象:

class A{
    string data1;
    string data2;
    string dataN;
    list<B> bList;
}

class B{
    string moreData;
}
Run Code Online (Sandbox Code Playgroud)

我想要以下XML表示:(假设我创建了一个实例A,它有两个B实例)

<A>
    <data1>content</data1>
    <data2>content</data2>
    <dataN>content</dataN>
    <B>
        <moreData>content</moreData>
    </B>    
    <B>
        <moreData>content</moreData>
    </B>
</A>
Run Code Online (Sandbox Code Playgroud)

Spr*_*tty 3

您所描述的内容称为 XML 数据绑定。有许多产品可以从 XSD 或 DTD 生成 C++ 代码,请查看http://www.xmldatabinding.org/获取列表,以及http://www.rpbourret.com/xml/XMLDataBinding .htm了解更多信息。

另请查看此C++ 的 XML 数据绑定示例,它显示了示例源架构和生成的代码。

如果您的模式非常基本,并且您能够将它们调整为生成器,那么可能有一些开源项目可以完成这项工作。如果您绑定到 XML 标准,那么您很快就会遇到大多数生成器的限制。Liquid XML生成器可以处理几乎所有 XSD 标准,但您必须为此付费。