В вашем запросе есть две ошибки.
Первый:
from t in themes.Descendants()
Это даст вам все themes
элементов.
Если вам нужны элементы theme
, вы должны указать их, отфильтровав:
from t in themes.Descendants("theme")
Следовательно, вторая ошибка будет
select new { value = t.Attribute("type").Value }
потому что t
будет элементом theme
без атрибута "type".
Я не могу помочь в этом, потому что не ясно, каким должен быть конечный результат.
Редактировать: Согласно добавленной информации, это должно сработать:
var childType =
from t in doc.Descendants("theme")
where t.Attribute("name").Value.Equals(theme)
select t.Element("root")
.Element("node")
.Attribute("type").Value;
Однако это предназначено для извлечения нескольких типов из узлов с одинаковым theme
именем.
Если тип всегда будет одинаковым, вам следует подумать о вызове .SingleOrDefault()
.