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;
}
}
Я получил xml-файл от третьей стороны, который также содержит файл определения типа документа после объявления xml.
<?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>
Если я анализирую файл с недопустимым символом в данной кодировке. Строка 102, позиция 56. Если я перехватываю исключение и пытаюсь выполнить синтаксический анализ файла, у меня возникает другая проблема - анализ файлов, но
Я получил ошибку. Не удалось найти файл 'C: \ Windows \ system32 \ SoccerMatchPlus.dtd'.
Файл определения типа документа с именем SoccerMatchPlus.dtd добавляется третьей стороной к корневому элементу.
В случае метода Load парсер загружает файл из того места, где также существует xml-файл.
Я поместил SoccerMatchPlus.dtd в другое место, где находится xml-файл, могу ли я загрузить этот файл SoccerMatchPlus.dtd из указанного места во время выполнения или вы можете сказать мне лучший способ загрузить xml-файл, содержащий данные о недопустимых символах