[英]Linq to XML elements
嗨,我嘗試使用LINQ讀取xml文件。
該文件的名稱是:categorizedBooks.xml
文件的內容如下所示:
<category name=".NET">
<books>
<book>CLR via C#</book>
<book>Essential .NET</book>
</books>
</category>
讀取文件的代碼如下所示:
XElement rootss = XElement.Load(@"D:/categorizedBooks.xml");
XElement dotNetCategoryss = rootss.Element("category");
XAttribute namehallo = dotNetCategoryss.Attribute("name");
XElement booksss = dotNetCategoryss.Element("books");
IEnumerable<XElement> bookElements = booksss.Elements("book");
Console.WriteLine((string)dotNetCategoryss);
foreach (XElement bookElement in bookElements)
{
Console.WriteLine(" - " + (string)bookElement);
}
但我在這條線上得到空:
XAttribute namehallo = dotNetCategoryss.Attribute("name");
那么如何解決這個問題,使其不為null?
謝謝
您的文檔根目錄是 category元素-嘗試:
XAttribute namehallo = rootss.Attribute("name");
Console.WriteLine(namehallo.Value);
您必須類似地更改其他XElement引用
代替XElement.Load使用XDocument.Load或XDocument.Parse
var xml = @"
<category name='.NET'>
<books>
<book>CLR via C#</book>
<book>Essential .NET</book>
</books>
</category>";
var document = XDocument.Parse(xml);
// returns: .NET
var category = document
.Element("category")
.Attributes("name")
.Select(p => p.Value);
// returns: CLR via C#, Essential .NET
var books = document
.Descendants("book")
.Select(p => p.Value);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.