Я получаю XML через сетевой сокет. Мне нужно взять этот XML и загрузить его в DOM для выполнения дальнейших операций. MSXML требует ввода строк, которые находятся в UCS-2 или UTF-16 и полностью игнорирует заголовок XML с типом кодирования при загрузке из строки. Он позволяет загружать фрагменты XML, поэтому это имеет смысл.Загрузить XML в C++ MSXML из массива байтов
Я вижу два возможных пути решения этой проблемы:
1) Запись файла на диск и загрузить его в MSXML через путь к файлам. Дополнительный дисковый ввод-вывод делает этот подход далеко не предпочтительным.
2) Пик в заголовок XML, чтобы вручную определить кодировку, а затем вызвать MultiByteToWideChar для преобразования в UTF-16 и указать кодовую страницу на основе обнаруженной кодировки. Этот подход работает нормально, но я хотел бы нажать обнаружение кодировки на MSXML.
Есть ли у кого-нибудь другие идеи о том, как это сделать?
Я не рассматривал другие синтаксические анализаторы XML, но был бы заинтересован в том, как это делают аналитики DOM без MSXML.
Спасибо, Пол