こんにちは、私はLINQでXMLファイルを読み込むしようとします。LINQの
ファイルの名前は次のとおりです。categorizedBooks.xml
と、ファイルの内容は次のようになります。
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);
}
:ファイルを読み込むためのコードは次のようになります
<category name=".NET">
<books>
<book>CLR via C#</book>
<book>Essential .NET</book>
</books>
</category>
しかし、私はこの行にヌルを返します:
XAttribute namehallo = dotNetCategoryss.Attribute("name");
これを修正する方法は、nullにならないようにすることです。
が
しかし、何がこの要素になるでしょうか? XAttributeブック= dotNetCategoryss。( "books"); – LikeToDo
'dotNetCategoryss'はnullです。ルート要素の下に 'category' *という名前のElementはありません(それ自体がcategoryという名前です)。 'dotNetCategoryss'の子への参照はヌルポインター例外を投げます – Black
それを以下に変更してください:' XElement booksss = rootss.Element( "books"); ' – Black