У меня есть этот запрос LINQ to XML ...
var Records = from Item in XDoc.Root.Elements("Item")
where (string)Item.Element("ItemNumber") == item.ID.ToString
select Item;
... где ItemNumber - это ссылочный номер, используемый в XML (первоначально написанный этой программой, но отредактированный вручную другими пользователями), и item.ID является версией базы данных того же самого.Запрос выполняется, и я могу проверить количество записей в результате отлично ...
if (Records.Count() < 1)
... Вы поняли идею.Я установил, что существует только одна запись (редактор не удалил или не дублировал / не умножил элемент).
Каждый элемент имеет несколько дочерних полей.Я хочу проверить значения дочерних полей, прежде чем передавать их в подсистему обновления базы данных.XML создается программой, но редактируется пользователями, поэтому мне нужно действительно проверить, что возвращается.Поэтому я попытался ...
if (DB_English.ToString() != Records.Elements("English").ToString())
... DB_English из базы данных, но XML в записях не содержит содержимого этого поля, он содержит ...
System.Xml.Linq.Extensions+<GetElements>d__29`1[System.Xml.Linq.XElement]
... итак, как мне получить значение этого элемента в файле XML?Мне нужно проверить, что поле в XML не было изменено (ручные редакторы этого файла данных не являются надежными на 100%).