いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Linq入門記-60 (LINQ to XML, 要素の取得, Elements)


LINQ to XMLにてクエリを利用して特定の要素を取得するサンプル.

過去の内容は以下から見れます。よろしければご参照くださいませ。


LINQ to XMLでは、LINQ to Objectsと同様にクエリを使用して
XML中の特定の要素を取得することが出来ます。要素を取得するために
利用できるメソッドはいっぱいあるのですが、とりあえず今回はよく利用するであろう
ElementsメソッドとElementメソッドを利用しています。


細かい各メソッドのサンプルとかは、後でやる予定。


以下、サンプルです。

  #region LinqSamples-57
  /// <summary>
  /// LINQ to XMLのサンプルです。
  /// </summary>
  /// <remarks>
  /// LINQ to XMLにてクエリを使用して対象の要素を取得するサンプルです。
  /// </remarks>
  public class LinqSamples57 : IExecutable
  {
    public void Execute()
    {
      //
      // LINQ to XMLでは、クエリを利用して特定の要素や属性などを取得する。
      // 取得方法はいろいろあるが、今回はElementsメソッドとElementメソッドを用いて要素の取得を行っている.
      //
      //
      // Books.xmlは、ルート要素がCataglogで内部に複数のBook要素を持っている.
      // 各Book要素は、一つのAuthor要素を持っている.
      //
      // Elementsメソッドは、引数に指定された要素名に合致する要素の集合を返す.
      // Elementメソッドは、引数に指定された要素名に合致する最初の要素を返す.
      //
      var root  = XElement.Load(@"xml/Books.xml");
      var query = from   book in root.Elements("Book")
                  select book.Element("Author");
      
      foreach (var author in query)
      {
        Console.WriteLine(author);
      }
    }
  }
  #endregion


実行結果は以下のようになります。

  Garghentini, Davide
  Garcia, Debra


以下、参照リソースです。

================================
過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。