Я пытаюсь загрузить XML-документ в объект XPathDocument в C#. Мои документы XML включают следующую строку: trés dégagée + Роде и когда анализатор прибывает там он дает мне эту ошибку: «Произошла ошибка при разборе EntityName» Я знаю, что это нормальная причина характера «é». Кто-нибудь знает, как я могу избежать этой ошибки ... Моя идея заключается в том, чтобы вставить в XML-документ декларацию сущностей и после замены всех специальных символов сущностями ... но она длинная, и я не уверен, что она работает. У вас есть другие идеи? Simpler? Большое спасибоПроизошла ошибка при разборе EntityName
ответ
Собирался опубликовать это, и именно тогда серверы опустились. Я думаю, что я переписать его правильно из памяти:
Я думаю, что проблема заключается в том, что по умолчанию XPathDocument
использует в XmlTextReader
разобрать содержимое прилагаемого файла и этот XmlTextReader
использует EntityHandling
установку ExpandEntities
,
Другими словами, когда вы полагаетесь на настройки по умолчанию, XmlTextReader
будет проверять входной XML и попытаться разрешить все сущности. Лучший способ это сделать это вручную, взяв полный контроль над XmlReaderSettings
(я всегда делаю это вручную):
string myXMLFile = "SomeFile.xml";
string fileContent = LoadXML(myXMLFile);
private string LoadXML(string xml)
{
XPathDocument xDoc;
XmlReaderSettings xrs = new XmlReaderSettings();
// The following line does the "magic".
xrs.CheckCharacters = false;
using (XmlReader xr = XmlReader.Create(xml, xrs))
{
xDoc = new XPathDocument(xr);
}
if (xDoc != null)
{
XPathNavigator xNav = xDoc.CreateNavigator();
return xNav.OuterXml;
}
else
// Unable to load file
return null;
}
Обычно это вызвано несоответствием между кодировкой, используемой для чтения файла и фактической кодировкой файлов.
Предполагаю, что файл UTF-8 закодирован, но вы читаете его с кодировкой по умолчанию.
Попробуйте уточнить свой вопрос с более подробной информацией, чтобы получить более окончательный ответ.
- 1. Ошибка конструктора Winforms «Произошла ошибка при разборе EntityName»
- 2. Произошла ошибка при разборе EntityName. Line1, позиция 844
- 3. Произошла ошибка при разборе запроса
- 4. ошибки при разборе EntityName на XML
- 5. Произошла ошибка при разборе SQL-запроса
- 6. произошла ошибка при разборе имени объекта с '&'
- 7. Произошла ошибка в разборе вашего JSON-LD
- 8. ActiveRecord :: Крепеж :: FormatError: ошибка YAML произошла разборе
- 9. C# xml string специальные символы Ошибка при разборе EntityName. Строка 1,
- 10. Ошибка при разборе JSON
- 11. Ошибка при разборе JSON
- 12. ANTLR ошибка при разборе
- 13. ошибка при разборе jsonarray
- 14. Ошибка сегментации при разборе
- 15. Ошибка при разборе JSON
- 16. Ошибка при разборе json
- 17. ошибка при разборе json
- 18. Ошибка анализа синтаксиса EntityName - XPathDocument
- 19. Произошла ошибка при разборе `Gemfile`: синтаксическая ошибка, неожиданный tIDENTIFIER, ожидающий конец ввода
- 20. xamarin.android произошла ошибка при установке
- 21. ОШИБКА произошла при архивировании артефактов
- 22. Произошла ошибка при попытке компиляции
- 23. Произошла ошибка при установке прочного
- 24. Произошла ошибка при визуализации клиента
- 25. Произошла ошибка при сохранении изображения
- 26. Docker: Произошла ошибка при подключении
- 27. «Произошла ошибка при анализе запроса».
- 28. Ошибка преобразования при разборе даты
- 29. Invalid ошибка даты при разборе
- 30. StringIndexOutOfBoundsException ошибка при разборе JSON
Это поможет, если вы показать код, который используется для выполнения нагрузки. – AnthonyWJones