MSXML имеет богатый набор функций, например, DOM 1.0 (вы можете управлять деревом DOM при помощи appendChild и т. Д.), SAX 2.0, XPath 1.0 (selectSingleNode и т. Д.) И XSLT 1.0. Кроме того, MSXML поддерживает проверку XSD 1.0 и DTD. MSXML предоставляется в виде COM-объектов.
В отличие от MSXML, который поддерживает DOM в модели дерева памяти и SAX синтаксический анализатор push-модели, XmlLite обеспечивает анализатор pull-модели, который по-настоящему быстрый и ограниченный. XmlLite предоставляется в виде чистой библиотеки C ++. К сожалению, он не поддерживает проверку DOM, XPath, XSLT, XSD и DTD, хотя полномочия DTD поддерживаются с точки зрения пользовательского распознавателя.
Так что выбор зависит от вашего требования. Я бы использовал XmlLite, если он удовлетворяет мои потребности, но я не думаю, что COM является бременем для меня, чтобы принять решение MSXML. В самом COM нет ничего плохого.