次の方法で共有


XElement オブジェクトと XDocument オブジェクトの有効なコンテンツ (LINQ to XML)

この記事では、コンストラクターに渡すことができる有効な引数と、要素やドキュメントにコンテンツを追加するために使用するメソッドについて説明します。

XElement コンストラクターの有効な型

クエリは、多くの場合、XAttributeXElement または IEnumerable<T>IEnumerable<T> に評価されます。 XElement または XAttribute オブジェクトのコレクションを XElement コンストラクターに渡すことができます。 そのため、クエリの結果をコンテンツとして、XML ツリーの設定に使用するメソッドとコンストラクターに渡すと便利です。

単純なコンテンツを追加するときに、次のようなさまざまな種類をこのメソッドに渡すことができます。

複雑なコンテンツを追加する場合、次のようなさまざまな種類をこのメソッドに渡すことができます。

オブジェクトが IEnumerable<T>実装されている場合、オブジェクト内のコレクションが列挙され、コレクション内のすべての項目が追加されます。 コレクションに XNode または XAttribute オブジェクトが含まれている場合、コレクション内の各項目が個別に追加されます。 コレクションにテキスト (またはテキストに変換されるオブジェクト) が含まれている場合、コレクション内のテキストは連結され、1 つのテキスト ノードとして追加されます。

コンテンツが null場合、何も追加されません。 コレクションを渡すとき、コレクション内の項目は null にできます。 コレクション内の null 項目は、ツリーには影響しません。

追加する属性は、その包含要素内に一意の名前を持つ必要があります。

XNode または XAttribute オブジェクトを追加するときに、新しいコンテンツに親がない場合、オブジェクトは単に XML ツリーにアタッチされます。 新しいコンテンツが既に親であり、別の XML ツリーの一部である場合は、新しいコンテンツが複製され、新しく複製されたコンテンツが XML ツリーにアタッチされます。

XDocument コンストラクターの有効な型

属性と単純なコンテンツをドキュメントに追加することはできません。

XDocumentを作成する必要があるシナリオはあまりありません。 代わりに、通常は、XElement ルート ノードを使用して XML ツリーを作成できます。 ドキュメントを作成するための特定の要件がない限り (たとえば、処理命令やコメントを最上位レベルで作成する必要がある場合や、ドキュメントの種類をサポートする必要がある場合など)、ルート ノードとして XElement を使用する方が便利です。

XDocument コンストラクターの有効な型は次のとおりです。

  • 0 個または 1 個の XDocumentType オブジェクト。 ドキュメントの種類は、要素の前に記述する必要があります。
  • 0 または 1 個の要素。
  • 0 個以上のコメント。
  • 0 個以上の処理命令。
  • 空白のみを含む 0 個以上のテキスト ノード。

コンテンツを追加するためのコンストラクターと関数

次のメソッドを使用すると、子コンテンツを XElement または XDocumentに追加できます。

方式 説明
XElement XElement を構築します。
XDocument XDocument を構築します。
Add XElement または XDocument の子コンテンツの末尾に追加します。
AddAfterSelf XNodeの後にコンテンツを追加します。
AddBeforeSelf XNodeの前にコンテンツを追加します。
AddFirst XContainerの子コンテンツの先頭にコンテンツを追加します。
ReplaceAll XElementのすべてのコンテンツ (子ノードと属性) を置き換えます。
ReplaceAttributes XElementの属性を置き換えます。
ReplaceNodes 子ノードを新しいコンテンツに置き換えます。
ReplaceWith ノードを新しいコンテンツに置き換えます。

関連項目