2008-09-08 46 views
1

我有一個創建一個相當大的XML DOM,並將其寫入開了一個文件(最多50-100MB)一些代碼。它基本上創建了DOM,然後在其上調用toString並使用ofstream將其寫出。有沒有辦法讓生成的dom的流輸出,以便它不一次創建內存中的整個結構,然後複製它,等等?我創建後不會修改任何節點,因此可以將其寫出並立即釋放內存。我可以編寫我自己的xml類,它可以執行xml構建,但是...我不認爲這是一個好主意,因爲當它涉及到轉義時,我可能會錯過某些東西。創建和使用C流大型XML文檔++

回答

1

我會推薦GenX作爲流式XML編寫器,我在Programmer's Notepad中使用它,它工作得很好,可以在源代碼中看到使用示例。速度非常快,並且它生成良好的UTF-8 XML。內存使用量在使用時應保持大致不變。

0

查看關鍵字「C++ XML writer;」 XML編寫器生成XML文件,而無需在內存中構建整個DOM,因此它們根本不需要使用太多的內存。你沒有提到平臺,但微軟XmlLite有IXmlWriter。

0

生成有效的XML確實沒有太多東西;逃避,你擔心的是微不足道的。

還有這裏的流XML的書面庫:https://code.google.com/p/xml-writer-cpp/ - 如果不出意外,這是教育的目的。