У меня есть простой xml:
<forms for="ApplicationTestSettings">
<form name="Parameter12Settings" title="Parameter12 Settings" url="/Parameter12Settings">
<roles>
<role name="Parameter12-Reader" />
<role name="Parameter12-Writer" can-add="1" can-edit="1" can-delete="0" />
</roles>
</form>
<form name="Parameter34Settings" title="Parameter 34 Settings" url="/Parameter34Settings">
<roles>
<role name="Parameter34-Reader" />
<role name="Parameter34-Writer" can-add="1" can-edit="1" can-delete="0" />
</roles>
</form>
</forms>
Мне нужна коллекция форм на основе значения атрибута элемента роли. У меня есть список:
List<string> roles = new List<string>();
roles.Add("Parameter12-Reader");
roles.Add("Parameter34-Writer");
Я пытаюсь получить элементы с помощью этого запроса:
var forms = root.Descendants("form")
.Where(form => roles.Contains(form.Element("roles")
.Element("role")
.Attribute("name").Value)).ToList();
К сожалению, этот запрос анализирует только первую роль во всех блоках форм/ролей. Может ли кто-нибудь сказать мне, как мне определить этот запрос для получения всего элемента формы, где список ролей содержит имена ролей xml?
Спасибо д.