XML 子孫軸プロパティ (Visual Basic)

XElement オブジェクト、XDocument オブジェクト、XElement オブジェクトのコレクション、または XDocument オブジェクトのコレクションの子孫にアクセスできるようにします。

構文

object...<descendant>

指定項目

object 必須。 XElement オブジェクト、XDocument オブジェクト、XElement オブジェクトのコレクション、または XDocument オブジェクトのコレクションです。

...< 必須。 子孫軸プロパティの開始を示します。

descendant 必須。 アクセスする子孫ノードの名前です。[prefix:]name の形式で指定します。

パーツ 説明
prefix 任意。 子孫ノードの XML 名前空間プレフィックスです。 Imports ステートメントを使用して定義されているグローバル XML 名前空間にする必要があります。
name 必須です。 子孫ノードのローカル名。 「宣言する XML 要素と属性の名前」を参照してください。

> 必須。 子孫軸プロパティの終了を示します。

戻り値

XElement オブジェクトのコレクション。

Remarks

XML 子孫軸プロパティを使用すると、XElement オブジェクト、XDocument オブジェクト、XElement オブジェクトのコレクション、または XDocument オブジェクトのコレクションから子孫ノードに名前でアクセスできます。 返されるコレクションの最初の子孫ノードの値にアクセスするには、XML の Value プロパティを使用します。 詳細については、「XML Value プロパティ」を参照してください。

Visual Basic コンパイラによって、子孫軸プロパティが Descendants メソッドの呼び出しに変換されます。

XML 名前空間

子孫軸プロパティの名前では、Imports ステートメントでグローバルに宣言されている XML 名前空間のみを使用できます。 XML 要素リテラル内でローカルに宣言されている XML 名前空間は使用できません。 詳細については、「Imports ステートメント (XML 名前空間)」を参照してください。

例 1

次の例は、contacts オブジェクトから、name という名前の最初の子孫ノードの値と、phone という名前のすべての子孫ノードの値にアクセスする方法を示しています。

Dim contacts As XElement = 
    <contacts>
        <contact>
            <name>Patrick Hines</name>
            <phone type="home">206-555-0144</phone>
            <phone type="work">425-555-0145</phone>
        </contact>
    </contacts>

Console.WriteLine("Name: " & contacts...<name>.Value)

Dim homePhone = From phone In contacts...<phone> 
                Select phone.Value

Console.WriteLine("Home Phone = {0}", homePhone(0))

このコードを実行すると、次のテキストが表示されます。

Name: Patrick Hines

Home Phone = 206-555-0144

例 2

次の例では、ns を名前空間プレフィックスとして宣言します。 その後、この名前空間のプレフィックスを使用して XML リテラルを作成し、修飾名 ns:name を持つ最初の子ノードの値にアクセスします。

Imports <xmlns:ns = "http://SomeNamespace"> 
 
Class TestClass2

    Shared Sub TestPrefix()
        Dim contacts = 
            <ns:contacts>
                <ns:contact>
                    <ns:name>Patrick Hines</ns:name>
                </ns:contact>
            </ns:contacts>

        Console.WriteLine("Name: " & contacts...<ns:name>.Value)
    End Sub

End Class

このコードを実行すると、次のテキストが表示されます。

Name: Patrick Hines

関連項目