次の方法で共有


LINQ to XML 軸の概要

XML ツリーを作成した後、または XML ドキュメントを XML ツリーに読み込んだ後は、クエリを実行して要素と属性を検索し、その値を取得できます。 axis メソッド、別名axes を使用してコレクションを取得します。 一部の軸は、XElement クラスと XDocument クラスのIEnumerable<T> コレクションを返すメソッドです。 一部の軸は、 Extensions クラスの拡張メソッドです。 拡張メソッドとして実装される軸は、コレクションに対して動作し、コレクションを返します。

XElement クラスの概要で説明されているように、XElement オブジェクトは単一の要素ノードを表します。 要素のコンテンツは、複雑な要素 (構造化コンテンツとも呼ばれます) または単純な要素にすることができます。 単純な要素は空にすることも、値を含めることもできます。 ノードに構造化コンテンツが含まれている場合は、さまざまな軸メソッドを使用して子孫要素の列挙体を取得できます。 最も一般的に使用される軸の方法は、 ElementsDescendantsです。

コレクションを返す軸メソッドに加えて、LINQ to XML クエリでよく使用する 2 つのメソッドがあります。 Element メソッドは、1 つのXElementを返します。 Attribute メソッドは、1 つのXAttributeを返します。

多くの場合、LINQ クエリは、ツリーを調べ、そこからデータを抽出し、変換するための最も強力な方法を提供します。 LINQ クエリはIEnumerable<T>を実装するオブジェクトに対して動作し、LINQ to XML 軸はIEnumerable<T> コレクションのXElementと、IEnumerable<T> コレクションのXAttributeを返します。 クエリを実行するには、これらのコレクションが必要です。

要素と属性のコレクションを取得する軸メソッドに加えて、ツリーを細かく反復処理できる軸メソッドもあります。 たとえば、要素や属性を処理する代わりに、ツリーのノードを操作できます。 ノードは、要素や属性よりも細かいレベルの粒度です。 ノードを操作する場合は、XML コメント、テキスト ノード、処理命令などを調べることができます。 この機能は、たとえばワード プロセッサを作成していて、ドキュメントを XML として保存するユーザーにとって重要です。 ただし、XML プログラマの大半は、主に要素、属性、およびその値に関係しています。

要素のコレクションを取得するためのメソッド

要素のコレクションを返すためにXElementで呼び出すXElement クラス (またはその基底クラス) のメソッドの概要を次に示します。

メソッド 説明
XNode.Ancestors この要素の祖先の IEnumerable<T>XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ祖先の XElementXName を返します。
XContainer.Descendants この要素の子孫の IEnumerable<T>XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ子孫の XElementXName を返します。
XContainer.Elements この要素の子要素のIEnumerable<T>XElementを返します。 オーバーロードでは、指定された IEnumerable<T> を持つ子要素の XElementXName を返します。
XNode.ElementsAfterSelf この要素の後にある要素の IEnumerable<T>XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ、この要素の後にある要素の XElementXName を返します。
XNode.ElementsBeforeSelf この要素の前にある要素の IEnumerable<T>XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ、この要素の前にある要素の XElementXName を返します。
XElement.AncestorsAndSelf この要素とその祖先の IEnumerable<T>XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ要素の XElementXName を返します。
XElement.DescendantsAndSelf この要素とその子孫の IEnumerable<T>XElement を返します。 オーバーロードでは、指定された IEnumerable<T> を持つ要素の XElementXName を返します。

1 つの要素を取得するためのメソッド

次のメソッドは、 XElement オブジェクトから 1 つの子を取得します。

メソッド 説明
XContainer.Element 指定したXElementを持つ最初の子XName オブジェクトを返します。

属性のコレクションを取得するためのメソッド

次のメソッドは、 XElement オブジェクトから属性を取得します。

メソッド 説明
XElement.Attributes すべての属性の IEnumerable<T>XAttribute を返します。

1 つの属性を取得するためのメソッド

次のメソッドは、 XElement オブジェクトから 1 つの属性を取得します。

メソッド 説明
XElement.Attribute 指定された XAttribute を持つ XName を返します。