用SAXXMLReader将XML文件保存为缩进格式,方便阅读

来源:互联网 发布:淘宝店铺怎么添加模块 编辑:程序博客网 时间:2024/06/05 17:26

MSXML3.0以上才提供对SAXXMLReader,直接上代码:

void SaveToXmlFile( MSXML2::IXMLDOMDocumentPtr docPtr,const wchar_t* XmlFileName ){HRESULT hr = S_OK;MSXML2::IMXWriterPtr pWriter(__uuidof(MSXML2::MXXMLWriter));MSXML2::ISAXXMLReaderPtr pReader(__uuidof(MSXML2::SAXXMLReader));pReader->putContentHandler((MSXML2::ISAXContentHandlerPtr)pWriter);pReader->putDTDHandler((MSXML2::ISAXDTDHandlerPtr)pWriter);pReader->putErrorHandler((MSXML2::ISAXErrorHandlerPtr)pWriter);pWriter->put_indent(VARIANT_TRUE);pWriter->put_byteOrderMark(VARIANT_TRUE);pWriter->put_standalone( VARIANT_TRUE );pWriter->put_disableOutputEscaping( VARIANT_TRUE );IStream* pStream = NULL;DWORD grfMode = STGM_WRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE;hr = SHCreateStreamOnFileW(XmlFileName, grfMode, &pStream);if (SUCCEEDED(hr)){_variant_t  v = pStream;hr = pWriter->put_output(v);if (SUCCEEDED(hr)){hr = pReader->parse((_variant_t)docPtr.GetInterfacePtr());if (SUCCEEDED(hr))pWriter->flush();}pStream->Release();}}

参考文章:http://www.cppblog.com/fwxjj/archive/2008/02/02/42411.html


PS:代码不是本人所写,一个前辈的,借用一下,贡献出来,希望对别的童鞋有帮助。


原创粉丝点击