C# 仅捕获XmlException中的字符编码问题

C# 仅捕获XmlException中的字符编码问题,c#,xml,string,character-encoding,xmlexception,C#,Xml,String,Character Encoding,Xmlexception,我正在使用System.Xml解析Xml文档。有时xml文档包含不可编码的字符,然后抛出XmlException。在这些情况下,我希望使用强制编码重试解析文档,如下所示: try { var doc = new XmlDocument(); doc.Load() } catch (XmlException xe) { // Retry here with another encoding.. } 这工作得相当好,只是对于所有类型的xml问题都会抛出XmlExceptio

我正在使用System.Xml解析Xml文档。有时xml文档包含不可编码的字符,然后抛出XmlException。在这些情况下,我希望使用强制编码重试解析文档,如下所示:

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

这工作得相当好,只是对于所有类型的xml问题都会抛出XmlException,即使这些问题不是由字符编码问题引起的。在这些情况下,我不想重试解析。那么,有没有办法确定XmlException是由字符编码问题还是其他原因引起的呢?

我不知道异常是什么样子,但通过检查xe.Message或xe.InnerException的内容,您肯定能够确定异常的类型?

我想答案是否定的,无法可靠地找出导致XmlException的原因。

不,两个备选方案都没有该信息。