如何使用LINQ解析C#中的XML文件?
我有一个XML文件:如何使用LINQ解析C#中的XML文件?,c#,asp.net,xml,asp.net-mvc,linq,C#,Asp.net,Xml,Asp.net Mvc,Linq,我有一个XML文件: <?xml version="1.0" encoding="utf-8"?> <NewSounds> <Artists> <Artist>Avril Lavigne</Artist> <Artist>Bob Marley</Artist> <Artist>Coldplay</Artist> </Artists&
<?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>
问题是,它抛出了一个System.NullReferenceException:对象引用未设置为对象的实例。
上出现错误。选择部分(可能是因为它找不到值?)
我想遍历XML并获取
和
标记中的相关部分 您的Select()
回调中的是
元素a.Element(“艺术家”)
什么都不是。将元素转换为字符串,而不是访问值
属性。在这种情况下,如果元素为null,则不会出现异常:
var artists = xml.Descendants("Artists")
.Elements("Artist")
.Select(a => new Artist {
Name = (string)a.Element("Artist")
}).ToArray();
var artists = xml.Descendants("Artists")
.Elements("Artist")
.Select(a => new Artist {
Name = (string)a.Element("Artist")
}).ToArray();