2011-05-10 210 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