Я пытаюсь написать запрос Linq2XML для запроса следующего XML. Мне нужно, чтобы вернуть все фотографии для данного GalleryID.
<Albums>
<Album GalleryId="1" Cover="AlbumCover1.jpg" Title="Album 1">
<Photos>
<Photo Title="Image1" URL="img1.jpg" DateAdded="01/01/2010 09:20"/>
<Photo Title="Image2" URL="img2.jpg" DateAdded="01/01/2010 09:20"/>
<Photo Title="Image3" URL="img3.jpg" DateAdded="01/01/2010 09:20"/>
</Photos>
</Album>
<Album GalleryId="2" Cover="AlbumCover1.jpg" Title="Album 2">
<Photos>
<Photo Title="Image1" URL="img1.jpg" DateAdded="01/01/2010 09:20"/>
<Photo Title="Image2" URL="img2.jpg" DateAdded="01/01/2010 09:20"/>
</Photos>
</Album>
</Albums>
Лучшее, что я придумал, это
XDocument xmlDoc = XDocument.Load(GalleryFilePath);
var x = from c in xmlDoc.Descendants("Album")
where int.Parse(c.Attribute("GalleryId").Value) == GalleryId
orderby c.Attribute("Title").Value descending
select new
{
Title = c.Element("Photos").Element("Photo").Attribute("Title").Value,
URL = c.Element("Photos").Element("Photo").Attribute("URL").Value,
DateAdded = c.Element("Photos").Element("Photo").Attribute("DateAdded").Value
};
Это ничего не возвращает, я предполагаю, что это потому, что я говорю ему запросить элемент Album, а затем пытаюсь перебрать элементы фото. Какие-нибудь подсказки относительно того, как это должно быть сделано?
Спасибо
Редактировать: код обновлен с учетом ответов