Я serching для элемента в файле XML, используя следующий LINQ к XML-запросапроблема в Non-ASCII поиск символов в файле XML с помощью LINQ к XML
XElement inspections = XElement.Load(new StreamReader(Server.MapPath(ResolveUrl(SelectInspection.InspectionFilePath)),Encoding.UTF8));
XElement inspection = (from elements in inspections.Elements("inspection")
where elements.Element("inspectionid").Value == inspectionId.ToString()
&& elements.Element("databasename").Value == Encoding.UTF8.GetString(Request.ContentEncoding.GetBytes (Request.QueryString("DbName")))
select elements).Single();
И мой файл XML является
<?xml version="1.0" encoding="utf-8"?>
<inspections>
<inspection>
<inspectionid>8</inspectionid>
<databasename>Åker</databasename>
<exported>false</exported>
</inspection>
</inspections>
Несмотря на то, что Request.QueryString("DbName")
равно «Åker», запрос не возвращает никакого результата.
Благодарим вас за ответ и код, который вы опубликовали. Запрос отлично работает для строки, но не для файла. Я попробовал следующий код в консоли, и я получаю ту же ошибку «Последовательность не содержит элемента»: Проверка XElement = XElement.Load (новый метод StreamReader («C: \\ Test \\ nonAscii.xml», Encoding.UTF8)) ; Проверка XElement = (от элементов в проверках.Элементы ("осмотр") \t \t \t \t \t \t \t \t \t где \t \t \t \t \t \t \t \t \t elements.Element ("DatabaseName"). Значение == "Aker" \t \t \t \t \t \t \t \t \t элементы выбора) .Single(); – Ehsan
Извините, код выше работает правильно. Я не сохранил xml-файл (nonAscii.xml) в кодировке utf-8. Я думаю, что проблема - проблема. – Ehsan