如何使用LINQ在C#中解析XML文件?

swi*_*ode 0 c# xml linq asp.net asp.net-mvc

我有这个XML文件:

<?xml version="1.0" encoding="utf-8"?>
<NewSounds>
    <Artists>
      <Artist>Avril Lavigne</Artist>
      <Artist>Bob Marley</Artist>
      <Artist>Coldplay</Artist>
    </Artists>

  <Genres>
    <Genre>Rock</Genre>    
    <Genre>Jazz</Genre>
    <Genre>Metal</Genre>
  </Genres>
</NewSounds>
Run Code Online (Sandbox Code Playgroud)

如何在LINQ中解析这个简单的XML文件?我对LINQ知之甚少,这就是我所拥有的:

var artists = xml.Descendants("Artists")
                    .Elements("Artist")
                    .Select(a => new Artist {
                        Name = a.Element("Artist").Value
                    }).ToArray();
Run Code Online (Sandbox Code Playgroud)

问题是,它会System.NullReferenceException: Object reference not set to an instance of an object..Select部件上引发错误(可能是因为它无法找到值?).

我想遍历XML并获取<Artist><Genre>标签内的相关部分.

SLa*_*aks 7

a在你的Select()回调中是<Artist>元素. a.Element("Artist")什么都不是.