Как преобразовать объект MSXML2 :: IXMLDOMNode в строку XML с отступом? - PullRequest
0 голосов
/ 01 декабря 2018

Есть ли хороший способ извлечь из MSXML2 :: IXMLDOMNodePtr строку с отступом (красивую / удобочитаемую) из XML?

Я могу извлечь XML с помощью MSXML2::IXMLDOMNode::get_xml() и снова проанализировать его ... Что-то вродеэто:

MSXML2::IXMLDOMNodePtr node = ...;

MSXML2::IMXWriterPtr writer;
writer.CreateInstance(__uuidof(MSXML2::MXXMLWriter60));
writer->indent = true;
writer->omitXMLDeclaration = true;

MSXML2::ISAXXMLReaderPtr reader;
reader.CreateInstance(__uuidof(MSXML2::SAXXMLReader60));

reader->putContentHandler(MSXML2::ISAXContentHandlerPtr(writer));
reader->parse(node->xml);

_bstr_t xml = writer->output;

но это, кажется, очень неэффективный способ сделать что-то довольно тривиальное ...

...