0
C++添加XML标签用于序列对的C++添加自定义XML标签的序列化向量对的
矢量在我最近的项目,我想实现一个模板类,这是类非常简单,它包含了一个矢量std :: pair数据。代码片段如下:
template <class TKey, class TValue>
class DataModel
{
public:
DataModel() = default;
~DataModel() = default;
private:
std::vector<boost::shared_ptr<std::pair<TKey, TValue>>> mData = {};
}
我的项目需求是序列化mData。我在boost中使用序列化工具来实现此功能。代码片段如下:
friend class boost::serialization::access;
template <typename Archive>
void serialize(Archive &ar, const unsigned int version)
{
ar &boost::serialization::make_nvp("Data", mData);
}
使用boost的序列化工具非常简单直接。但是一个问题是最终XML文件中std :: pair元素的XML标记是由boost代码控制的,并且它是不可读的。我想在输出XML文件中添加一些有意义的XML标记。如下所示:
<item>
<key>{KeyValue}</key>
<value>{Value}</value>
</item>
当然,boost不会像上面可读的XML标签那样序列化。是否有可能修改我的上面的序列化代码,使最终的XML文件包含有意义的XML标签?