所以,我一直在尋找,但無法找到答案。德爾福的FormatXMLData導致EOutOfMemory
關於創建大型XML導致此內存不足異常的SOF存在一個問題,但這不是我的情況。
我正在通過XML數據綁定使用IXMLDocument創建一個XML,並且它創建得很好。
但是,將它保存到文件時,它都在一行文本中。 要走的路是在將XML保存到文件之前通過FormatXMLData傳遞XML。
這對小文件很好用,但如果XML足夠大,則會與EOutOfMemory一起崩潰。
所以我嘗試添加選項[doNodeAutoIndent],但也沒有工作。
下一步,我創建了一個TStringList來接收XML,所以我可以停用IXMLDocument,然後嘗試TSringList上的FormatXMLData。我對此並不期待,但我想這兩個組件可能會使用不同的內存管理器(我錯誤地認爲IXMLDocument使用的是COM內存管理器而不是Delphi的),現實情況已經非常接近預期,因爲同樣的例外被提出。
任何人有一個想法,如何使用XML數據綁定,使用FormatXMLData或任何其他選項時,我的XML保存正確縮進和格式化?
在StackOverFlow上閱讀類似的問題,我看到了一些替代方案,其中包括一個SAX解析器來替換基於IXMLDocument的DOM,但我相信會禁用XML數據綁定的優勢,是不是?
謝謝 努諾
未格式化的XML文檔有多大? – whosrdaddy
我正在測試一個8.5 MB的XML信息量,但有時甚至會更大...... – nunopicado