Поймать только проблемы с кодировкой символов в XmlException

Я использую System.Xml для анализа XML-документов. Иногда XML-документы содержат не кодируемые символы, а затем XmlException брошен В этих случаях я хочу повторить анализ документа с принудительной кодировкой, например так:

try {
    var doc = new XmlDocument();
    doc.Load()
} catch (XmlException xe) {
    // Retry here with another encoding..
}

Это работает довольно хорошо, за исключением того, что XmlException генерируется для всех типов проблем xml, даже тех, которые не вызваны проблемами кодировки символов. В этих случаях я не хочу повторять разбор. Так есть ли способ выяснить, было ли исключение XmlException вызвано проблемами кодировки символов или чем-то еще?

2 ответа

Решение

Я предполагаю, что ответ "нет", нет способа надежно выяснить, что вызвало XmlException.

Я не знаю точно, как выглядит исключение, но, конечно, проверяя содержимое xe.Message или же xe.InnerException вы бы смогли определить тип исключения?

Другие вопросы по тегам