Выражение LINQ для поиска XElement и прохождения по атрибутам, каждый из которых может быть добавлен в список - PullRequest
1 голос
/ 05 февраля 2012

Хорошо, вот моя основная структура XML:

 <device
    name="abc"
    source1="True"
    source2="True"
    ...
    source19="False"
    source20="False" />

Мне нужно найти в файле устройство, соответствующее определенному имени, а затем просмотреть все его атрибуты.Все они, которые имеют значение true, будут иметь удобную строку, основанную на опции #, добавленной в список.Я могу понять первую часть, но не зацикливание, похоже, это не то, что обычно делают.

1 Ответ

1 голос
/ 05 февраля 2012

Я думаю, что это должно работать

XDocument doc = XDocument.Load("your XML");
var device = doc.Descendants("device").Select(item => item).Where(
                        item => item.Attribute("name").Value.ToString().Equals("some name")).FirstOrDefault();

if(null != device)
{
    var items = device.Attributes().Select(item => item).Where(item =>  item.Value == "True");
    if(null != items)
    {
        //you can also customize name according to your needs here
        yourListBox.AddRange(items.Select( item => item.Name.ToString() ).ToList());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...