簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM