我正在使用来自 Mingw 的 C++,它是 GNC C++ 的 Windows 版本。
我想要做的是:将 C++ 对象序列化为 XML 文件,并即时从 XML 文件中反序列化对象。我检查 TinyXML。它非常有用,并且(如果我误解请纠正我)它基本上在处理过程中添加所有节点,最后使用 TixmlDocument::saveToFile(filename) 函数将它们放入一个文件中。
我正在进行实时处理,如何即时写入文件并将以下结果附加到文件中?
谢谢。
我正在使用来自 Mingw 的 C++,它是 GNC C++ 的 Windows 版本。
我想要做的是:将 C++ 对象序列化为 XML 文件,并即时从 XML 文件中反序列化对象。我检查 TinyXML。它非常有用,并且(如果我误解请纠正我)它基本上在处理过程中添加所有节点,最后使用 TixmlDocument::saveToFile(filename) 函数将它们放入一个文件中。
我正在进行实时处理,如何即时写入文件并将以下结果附加到文件中?
谢谢。
BOOST 有一个非常好的序列化/反序列化库BOOST.Serialization。
如果您将对象流式传输到 boost xml存档,它将以 xml 格式流式传输它们。如果 xml 太大或太慢,您只需更改文本或二进制存档中的存档即可更改流格式。
这是一个更好的 C++ 对象序列化示例:
我注意到每个 TiXmlBase 类都有一个 Print 方法,并且还支持流式传输到字符串和流。
您可以按顺序遍历文档的新部分并在添加这些部分时输出它们,也许?
试试看.....
托尼
为此,我一直在使用gSOAP。它对于 XML 序列化来说可能太强大了,但是知道它可以做更多的事情意味着我不必为更高级的项目考虑其他解决方案,因为它还支持 WSDL、SOAP、XML-RPC 和 JSON。也适用于嵌入式和小型设备,因为 XML 只是一种临时的有线格式,而不是保存在 DOM 或内存密集型的东西中。