web-dev-qa-db-ja.com

XElementの子

XElementの子だけを取得するにはどうすればよいですか?

現在、XElement.Descendants()関数を使用しています。この関数は、子ノードだけでなく、XElementsのすべてのレベルを返します。

本当に欲しいのは、子供だけのIEnumerableです。

62
Superman

1つの XElement の直接の子要素は、 Element() または Elements() 関数を呼び出すことでアクセスできます。特定の要素にアクセスするには名前付きでオーバーロードを使用し、すべての子要素にはアクセスせずにオーバーロードを使用します。

Attribute()Attributes() のような類似のメソッドもあります。

98
Bevan

XElement.Nodes()はあなたが欲しいものを取得するはずです。

XElementの子ノードだけが必要な場合は、次を使用して(XMLに応じて)制限する必要があります。

XElement.Nodes().OfType<XElement>()
11
Steven Robbins
4
tvanfosson