Я хочу найти раздел xml на основе критериев, поэтому я использую linq для XML. К сожалению, результат всегда равен нулю, поэтому я думаю, что я сделал что-то неправильно. Ниже приведен пример XML-анализа.Поиск определенного элемента XML на основе идентификатора с использованием Linq
<Stuff>
<ItemsA />
<ItemsB />
<ItemsC>
<Item xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Stuff">
<Id>4bd7b5ac-cb29-4d34-97be-deaebe4a5186</Id>
<Children>
<Item>
<Id>22e3ef6b-4321-40c3-9237-196ba527e9ad </Id>
<Name>SomeName</Name>
</Item>
</Children>
<Description>SomeText</Description>
<Name>NewName</Name>
</Item>
Я смотрю на раздел «ItemsC», где может быть несколько «Пункт» блоки XML (только один показан в этом примере). Я хочу получить элемент на основе его «Id», который имеет идентификатор «4bd7b5ac-cb29-4d34-97be-deaebe4a5186» в приведенном выше примере.
Код я использовал показано ниже:
XElement данные = XElement.Parse (GetFile());
var pbp = (from b in data.Descendants("Item")
where b.Element("Id").Value == "4bd7b5ac-cb29-4d34-97be-deaebe4a5186"
select b.Element("Id").Parent).FirstOrDefault();
pbp всегда возвращается как null. Может ли кто-нибудь помочь мне создать правильное выражение linq.
Спасибо, что изменение в настоящее время работает. Время для меня, чтобы сделать еще немного чтения на Linq :) – Retrocoder