2011-06-27 57 views
1

我最近已經開始將Boost :: serialization用於研究工作,儘管它功能非常強大且易於使用,但對於最終的xml格式仍然有點麻煩。我有一個類的層次結構,並且在序列化時,每個子類嵌套在xml輸出中它自己的標記中。這個子類標籤是由於使用boost::serialization::base_object而創建的。有人知道如何將基類和子類保持在xml層次結構的相同級別嗎?Boost :: serialization的XML層次結構

例如:當前格式

<baseClass> <attr>value</attr> <subClass> <otherAttr>value</otherAttr> </subClass> </baseClass>

目標格式:

<baseClass> <attr>value</attr> <otherAttr>value</otherAttr> </baseClass>

+1

你是否需要這樣做(例如,是另一個需要特定輸出的程序),還是僅僅爲了提高可讀性?看到這個問題的評論:http://stackoverflow.com/questions/3931535/boost-serialize-serialize-data-in-a-custom-way - 特別是,使用[Boost.Karma](http:///www.boost.org/doc/libs/1_44_0/libs/spirit/doc/html/spirit/karma.html) –

+0

好的,謝謝你們。順便說一句,要回答@Merlyn的問題,是的,這是爲了可讀性:)否則,文本存檔將是完美的。 – Shnippoo

回答

2

Boost.Serialization並不意爲是寫入一個特定文件格式的機制。這是將類的數據轉儲到文件的方法,然後再次使用這個程序讀取該數據。格式不是應該關注你的事情。

如果你使用的是特定的文件格式,那麼你想要的,就像Merlyn建議的那樣,是一個Boost.Karma生成器。

+0

+1;應該讓它成爲答案......大聲笑:) –