Как сохранить объект IXMLDOMDocument в файл с tabsize = 2? - PullRequest
0 голосов
/ 23 сентября 2019

Я хочу отформатировать XML с отступом.Я использую IMXWriter для настройки выходного формата, такого как кодировка, отступ.Но размер выходного файла слишком большой.

Итак, есть ли способ настроить размер вкладки, равный 2?

Мой код выглядит так:

    MSXML2::IMXWriterPtr pWriter(__uuidof(MSXML2::MXXMLWriter60));
    MSXML2::ISAXXMLReaderPtr  pReader(__uuidof(MSXML2::SAXXMLReader60));
    pReader->putContentHandler((MSXML2::ISAXContentHandlerPtr)pWriter);
    pReader->putErrorHandler((MSXML2::ISAXErrorHandlerPtr)pWriter);

    pWriter->put_encoding(L"UTF-8");
    pWriter->put_indent(VARIANT_TRUE);
    pWriter->put_byteOrderMark(VARIANT_TRUE);
    pWriter->put_omitXMLDeclaration(VARIANT_FALSE);
    pWriter->put_standalone(VARIANT_TRUE);

    DWORD grfMode = STGM_WRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE;

    IStream* pStream;

    // ...create a new file opened for write, and return an IStream interface.
    hr = ::SHCreateStreamOnFileW(m_xmlPath.GetWCharCP(), grfMode, &pStream);
    if (SUCCEEDED(hr))
        {
        hr = pWriter->put_output(_variant_t(pStream));
        if (SUCCEEDED(hr))
            hr = pReader->parse((_variant_t) pXMLDom.GetInterfacePtr());
        }

    pStream->Release();

Я надеюсь, что вкладки выходного XML-файла будут замененына 2 пробела.

...