這是我解析的XML:空對象引用
<FEED>
<FEED_HEADER>
<FEED_NAME>foo</FEED_NAME>
<FEED_CODE>foobar123</FEED_CODE>
</FEED_HEADER>
<FEED_CONTENT>
<DOC>
<PUB_DATE>2011-12-01</PUB_DATE>
<TITLE>Monkey Bombs</TITLE>
</DOC>
<DOC>
<PUB_DATE>2011-12-10</PUB_DATE>
<TITLE>A Silly Hat</TITLE>
</DOC>
<DOC>
<PUB_DATE>2011-12-25</PUB_DATE>
<TITLE>Wind Blows Up My Skirt</TITLE>
</DOC>
</FEED_CONTENT>
</FEED>
而且我用我已經寫建立一個基於對象的列表,這個LINQ代碼解析它商務部元素和它的後續元素:
public List<Review> GetReviews(string filePath, FileInfo file, DirectoryInfo directory, XElement xmlDoc)
{
IEnumerable<BookReview> reviews = null;
try
{
reviews = from item in xmlDoc.Descendants("DOC")
select new BookReview()
{
PubDate = item.Element("PUB_DATE").Value,
Title = item.Element("TITLE").Value,
};
}
catch (Exception ex)
{
logger.Info(string.Format("Error while parsing file {0}\n", file.Name) + " " + ex.Message.ToString());
}
return reviews.Cast<Review>().ToList();
}
在過去,這個代碼將工作在DOC元素只是根元素之下,現在的DOC元件進一步嵌套到FEED_CONTENT元素,我得到一個空引用異常。我認爲LINQ可以直接訪問我想要的而不知道它在層次結構中的位置。 那麼現在我需要寫什麼來訪問DOC元素?
這應該工作。您粘貼的XML雖然不完整或無效。 – BrokenGlass