2011-05-10 159 views
1

有人可以给我一个使用Boost库的序列化/非集成化的例子吗?我在C++/Ubuntu的9.1boost C++序列化/反序列化

工作,我有类

class x 
{ 
public: 
    x(); 

    std::string name; 
    std::string surname; 
}; 

如何使用boost序列化创建XML <1.0...> id: <name>..<surname>?还是有另一种方法来做到这一点?

回答

1

boost序列化将构建它自己的不可修改的XML模式。 序列化用于序列化而不读取/写入随机XML。

0

提升是矫枉过正这样一个简单的例子......我的意思是,你需要的是

friend std::ostream& (std::ostream& str, x const & cData) 
{ 
    return str << "<...><name>" << cData.name << "</name><surname>" << cData.surname << "</surname></...>"; 
} 
+0

这看起来像生产无效的XML的直接路由,因为它不entitize数据。即,如果任何一个字符串包含“<”,会发生什么? – ildjarn 2011-05-10 14:03:29

+0

@ildjarn,我试图做的一点是,有时你不需要开销...反正 - 这个星球上有一个名字,里面有一个'>''''或'&' ?你会怎么说呢?这只是简单的愚蠢!无论如何,任何输入机制肯定会通过这一点验证数据。 – Nim 2011-05-10 14:08:39

+0

不寻常,当然,但在美国,至少它的名字中有特殊的标点符号是合法的*。 – ildjarn 2011-05-10 14:10:30