2009-02-10 2 views
3

У меня есть xml-файл, который выглядит следующим образом. Я пытаюсь создать запрос, который выбирает только элементы с атрибутом «Channel» и значением «Automotive».Чтение значений атрибутов с помощью linq

<item> 
     <title>Industries</title> 
     <category type="Channel">Automotive</category> 
     <category type="Type">Cars</category> 
     <category type="Token">Article</category> 
     <category type="SpecialToken">News</category> 
     <guid>637f0dd7-57a0-4001-8272-f0fba60feba1</guid> 
</item> 

Вот мой код

var feeds = (from item in doc.Descendants("item") 
    where item.Element("category").Value == "Channel" 
    select new { }).ToList(); 

Я попытался с помощью item.attribute метод, но я не могу добраться до значения в пункте, только значения атрибута «тип»

Может кто-нибудь, пожалуйста, помогите мне в этом?

Cheers, Chris

ответ

10

Я подозреваю, что вы хотите:

var feeds = (from item in doc.Descendants("item") 
      from category in item.Elements("category") 
      where category.Value=="Automotive" && 
        category.Attribute("type").Value == "Channel" 
      select item).ToList(); 
+0

Я знал, что должен был сделать подзапрос. Почему-то я не мог понять. Еще раз спасибо. – Chris