簡體   English   中英

Linq to XML元素

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

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