XML 子孫軸プロパティ

更新 : 2007 年 11 月

XElement オブジェクト、XDocument オブジェクト、XElement オブジェクトのコレクション、または XDocument オブジェクトのコレクションの子孫へのアクセスを提供します。

object...<descendant>

指定項目

  • object
    必ず指定します。XElement オブジェクト、XDocument オブジェクト、XElement オブジェクトのコレクション、または XDocument オブジェクトのコレクションです。

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

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

    指定項目

    説明

    prefix

    省略可能です。子孫ノードの XML 名前空間プレフィックスです。Imports ステートメントを使用して定義されているグローバル XML 名前空間を指定する必要があります。

    name

    必ず指定します。子孫ノードのローカル名です。「宣言する XML 要素と属性の名前」を参照してください。

  • >
    必ず指定します。子孫軸プロパティの終了を示します。

戻り値

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

解説

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

Visual Basic コンパイラは、子孫軸プロパティを Descendants メソッドの呼び出しに変換します。

XML 名前空間

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

使用例

次の例では、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

次の例では、ns を XML 名前空間プレフィックスとして宣言します。その後、この名前空間のプレフィックスを使用して 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

参照

概念

宣言する XML 要素と属性の名前

参照

XElement

その他の技術情報

XML 軸プロパティ

XML リテラル

Visual Basic での XML の作成