2009-09-04 135 views
2

我使用的是Mingw的C++,它是GNC C++的Windows版本。C++中的XML序列化/反序列化

我想要做的是:將C++對象序列化爲XML文件並即時反序列化XML文件中的對象。我檢查TinyXML。這非常有用,並且(如果我誤解了它,請糾正我),它基本上在處理期間添加所有節點,並最終使用TixmlDocument :: saveToFile(filename)函數將它們放入一個塊中的文件中。

我正在進行實時處理,以及如何在運行中寫入文件並將以下結果追加到文件中?

謝謝。

回答

2

我注意到每個TiXmlBase類都有一個Print方法,並且還支持串流和串流。

您可以按順序走過文檔的新部分,並在添加時輸出這些部分,也許?

試試看吧.....

託尼

+0

Print()效果很好,謝謝Tony! – Lily 2009-09-05 19:35:30

2

BOOST有一個很好的序列化/反序列化LIB BOOST.Serialization
如果您將對象流式傳輸到xml archive,它將以xml格式對它們進行流式處理。 如果xml變大或變慢,您只需更改文本或二進制歸檔中的歸檔文件即可更改流式格式。

0
我一直在使用 gSOAP爲此目的

。對於XML序列化來說,它可能太強大了,但知道它可以做更多的事情,我不必爲更高級的項目考慮其他解決方案,因爲它也支持WSDL,SOAP,XML-RPC和JSON。也適用於嵌入式和小型設備,因爲XML僅僅是一種瞬態線格式,並不保存在DOM或內存密集型內存中。