1
我目前遇到一個問題,試圖將我的XML元素導入到一個類型的書籍列表。我收到錯誤的這段代碼的「不設置到對象的實例對象引用」:導入XML到對象列表
mybook.Title = p.Element("title").Value;
難道我引用的XML元素不當或者是其他一些簡單的事情?我通過無盡的解決方案和主題搜索了數小時,並且無法克服這最後的障礙。
爲了簡單起見,這裏是在一個文件中的代碼:
class Program
{
static void Main(string[] args)
{
string appPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
FileInfo fi = new FileInfo(Path.Combine(appPath, "Books.xml"));
Console.WriteLine(GetBooks());
}
public class Books
{
public string ID { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public decimal Price { get; set; }
public DateTime PublishDate { get; set; }
public string Description { get; set; }
}
public static List<Books> GetBooks()
{
XDocument doc = LinqToXml.XmlHelper.GetPlantDocument();
var xmlBooks = doc.Descendants("catalog");
List<Books> someBooks = new List<Books>();
foreach (var p in xmlBooks)
{
Books mybook = new Books();
mybook.Title = p.Element("title").Value;
someBooks.Add(mybook);
}
return someBooks;
}
}
這是XML文件的內容:
請注意,這確實是一門功課的項目。我不是在尋找一個直接的答案,因爲我是一個巨大的提示或兩個。
提示:將元素視爲路徑。您有「目錄」下所有元素的集合,但是您試圖跳過前進並獲得「標題」而不完成路徑。 – Tim
另一個提示:你想要的是抓取「書」元素和他們的孩子的集合。如果你從'doc.Descendants(「Book」)開始,你可能會更容易得到「標題」,而不是抓住「目錄」下的所有孩子。 – Tim
啊。那是我之前嘗試的,我的錯誤。此問題與ID以及標題等其他元素一起出現。 – user1721879