使用LinqToXml,我想从像下面这样的xml文件中读取给定艺术家的专辑列表:
...
...
我尝试了以下LinqToXml代码。但是,我想避免实例化一个艺术家对象...
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;
更新:我的当前“最佳”尝试: 请参阅已接受的答案。
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;
更新:我的当前“最佳”尝试: 请参阅已接受的答案。