LINQ to XML 軸の概要
XML ツリーを作成した後、または XML ドキュメントを XML ツリーに読み込んだ後は、クエリを実行して要素や属性を調べたり、その値を取得したりできます。 コレクションの取得には、軸メソッド (軸とも呼ぶ) を使用します。 一部の軸は、XElement コレクションを返す、XDocument クラスおよび IEnumerable<T> クラスのメソッドです。 一部の軸は、Extensions クラスの拡張メソッドです。 拡張メソッドとして実装されている軸は、コレクションに対して機能し、コレクションを返します。
「XElement クラスの概要」で説明しているように、XElement オブジェクトは単一の要素ノードを表します。 要素のコンテンツは、複合要素 (構造化コンテンツとも呼ばれる) または単純要素です。 単純要素は、空の場合と値を含む場合があります。 ノードに構造化コンテンツが含まれている場合、さまざまな軸メソッドを使用して子孫要素の列挙を取得できます。 最も一般的に使用される軸メソッドは、Elements および Descendants です。
コレクションを返す軸メソッド以外に、LINQ to XML クエリでよく使用されるメソッドが 2 つあります。 Element メソッドは、1 つの XElement を返します。 Attribute メソッドは、1 つの XAttribute を返します。
LINQ クエリは多くの用途において、ツリーを調べてデータを抽出し、それを変換する方法として最も強力です。 LINQ クエリは、IEnumerable<T> を実装するオブジェクトに対して機能します。LINQ to XML 軸が、XElement コレクションの IEnumerable<T> と XAttribute コレクションの IEnumerable<T> を返します。 クエリを実行するには、これらのコレクションが必要です。
要素と属性のコレクションを取得する軸メソッドに加えて、ツリーを詳細に反復処理するための軸メソッドもあります。 たとえば、要素と属性を処理する代わりに、ツリーのノードを操作できます。 ノードは、要素や属性よりも細かい粒度レベルです。 ノードの操作時には、XML コメント、テキスト ノード、処理命令などを調べることができます。 この機能は、たとえば、文書を XML として保存できるワード プロセッサを作成する場合に重要です。 ただし、大多数の XML プログラマが主に扱うのは、要素、属性、およびその値です。
要素のコレクションを取得するメソッド
XElement で呼び出して要素のコレクションを返す XElement クラス (またはその基本クラス) のメソッドを、次にまとめて示します。
メソッド | 説明 |
---|---|
XNode.Ancestors | この要素の祖先の IEnumerable<T> の XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ祖先の XElement の XName を返します。 |
XContainer.Descendants | この要素の子孫の IEnumerable<T> の XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ子孫の XElement の XName を返します。 |
XContainer.Elements | この要素の子要素の IEnumerable<T> の XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ子要素の XElement の XName を返します。 |
XNode.ElementsAfterSelf | この要素の後にある要素の IEnumerable<T> の XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ、この要素の後にある要素の XElement の XName を返します。 |
XNode.ElementsBeforeSelf | この要素の前にある要素の IEnumerable<T> の XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ、この要素の前にある要素の XElement の XName を返します。 |
XElement.AncestorsAndSelf | この要素とその祖先の IEnumerable<T> の XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ要素の XElement の XName を返します。 |
XElement.DescendantsAndSelf | この要素とその子孫の IEnumerable<T> の XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ要素の XElement の XName を返します。 |
1 つの要素を取得するメソッド
次のメソッドは、XElement オブジェクトから 1 つの子を取得します。
メソッド | 説明 |
---|---|
XContainer.Element | 指定された XElement を持つ最初の子 XName オブジェクトを返します。 |
属性のコレクションを取得するメソッド
次のメソッドは、XElement オブジェクトから属性を取得します。
メソッド | 説明 |
---|---|
XElement.Attributes | すべての属性の IEnumerable<T> の XAttribute を返します。 |
1 つの属性を取得するメソッド
次のメソッドは、XElement オブジェクトから 1 つの属性を取得します。
メソッド | 説明 |
---|---|
XElement.Attribute | 指定された XAttribute を持つ XName を返します。 |
.NET