С LinqToXml я хотел бы зачитать список альбомов для данного исполнителя из XML-файла, например
<?xml version="1.0" encoding="utf-8" ?>
<artists>
<artist name="Beatles">
<albums>
<album title="Please Please Me" year="1963"/>
<album title="With the Beatles" year="1963"/>
...
</albums>
</artist>
...
Я попробовал следующее с LinqToXml. Тем не менее, я хотел бы избежать создания экземпляра объекта Artist ...
XDocument xartists = XDocument.Load(FilePhysicalPath);
var artists = from xartist in xartists.Descendants("artist")
where xartist.Attribute("name").Value.Equals(id)
select new MusicArtist
{
Albums = from xalbum in xartist.Descendants("album")
select new MusicAlbum
{
Title = xalbum.Attribute("title").Value,
Year =
int.Parse(xalbum.Attribute("year").Value)
}
};
var artist = artists.SingleOrDefault();
if (artist != null)
return artist.Albums;
else
return null;
Обновление: моя текущая «лучшая» попытка:
Смотрите принятый ответ.