Caractere inválido na codificação fornecida
XmlDocument oXmlDoc = new XmlDocument();
try
{
oXmlDoc.Load(filePath);
}
catch (Exception ex)
{
// Log Error Here
try
{
Encoding enc = Encoding.GetEncoding("iso-8859-1");
StreamReader sr = new StreamReader(filePath, enc);
String response = sr.ReadToEnd();
oXmlDoc.LoadXml(response);
}
catch (Exception innerException)
{
// Log Error Here
return false;
}
}
Recebi um arquivo xml de terceiros que também inclui o arquivo de definição de tipo de documento após a declaração xm
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE SoccerMatchPlus SYSTEM "SoccerMatchPlus.dtd">
<SoccerMatchPlus matchid="33226">
<Booking id="13642055" time="47">
<Player id="370927">
<Name firstName="Lasse" initials="L" lastName="Nielsen">L Nielsen</Name>
</Player>
<Team id="26415" name="AæB" homeOrAway="Home"/>
</Booking>
</SoccerMatchPlus>
Se eu analisar o arquivo com caracteres inválidos na codificação especificada. Linha 102, posição 56. Se eu pegar a exceção e tentar analisar o arquivo novamente, tenho outro problema, o arquivo analisa mas
Eu recebi o erro Não foi possível encontrar o arquivo 'C: \ Windows \ system32 \ SoccerMatchPlus.dtd'.
O arquivo de definição de tipo de documento chamado SoccerMatchPlus.dtd é adicionado antes do elemento raiz por terceiro
No caso do método Load, o analisador carrega o arquivo do local em que o arquivo xml também exist
Coloquei o SoccerMatchPlus.dtd em outro local onde o arquivo xml reside. Posso carregar esse arquivo SoccerMatchPlus.dtd do local especificado em tempo de execução ou você pode me dizer a melhor maneira de carregar o arquivo xml que contém os dados de caracteres inválidos?