[英]How to parse XML file in C# using LINQ?
我有這個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>
如何在LINQ中解析此簡單的XML文件? 我對LINQ知之甚少,這就是我所擁有的:
var artists = xml.Descendants("Artists")
.Elements("Artist")
.Select(a => new Artist {
Name = a.Element("Artist").Value
}).ToArray();
問題是,它拋出System.NullReferenceException: Object reference not set to an instance of an object.
.Select
部分出現錯誤(也許是因為找不到值?)。
我想遍歷XML,並獲取<Artist>
和<Genre>
標簽內的相關部分。
a
在您的Select()
回調是<Artist>
元素。 a.Element("Artist")
不是什么。
將元素強制轉換為字符串,而不是訪問Value
屬性。 在這種情況下,如果element為null,則不會獲得異常:
var artists = xml.Descendants("Artists")
.Elements("Artist")
.Select(a => new Artist {
Name = (string)a.Element("Artist")
}).ToArray();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.