您的位置:首页 > 其它

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

2011-12-13 10:12 477 查看
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:代码不是本人所写,一个前辈的,借用一下,贡献出来,希望对别的童鞋有帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐