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標籤?