我正在使用带有 DOMLSOutput 的 DOMLSSerialize 将 DOMDocument 打印到 xml 文件中。我需要打印大量的 xml(10-20Mb 之间)。
当我尝试打印大于 ~6Mb 的文档时遇到问题。xml 文件仅包含 ~6Mo,它在 6Mo 处被裁剪,结束标签不在文档中。
我知道使用 DOMLSSerializer 和 DOMDocument 意味着文档是一次性打印的。因此,我很确定我的问题是由于 DOMLSSerializer、DOMDocument 或 DOMLSOutput 中某处的缓冲区太小......但是,我不知道缓冲区在哪里以及如何使它更大。
在此先感谢您的帮助。
DOMImplementation *pImplement = DOMImplementationRegistry::getDOMImplementation(L"LS");
xercesc::DOMLSSerializer* _pSerializer = ((DOMImplementationLS*)pImplement)->createLSSerializer();
XMLFormatTarget *formatTarget = new LocalFileFormatTarget("Debug.xml");
xercesc::DOMLSOutput* _output = ((DOMImplementationLS*)pImplement)->createLSOutput();
_output->setByteStream(formatTarget);
//later
_pSerializer->write(pmyDOMDocument, _output);
_pDOMDocument->release();