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