次の方法で共有


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

XElement オブジェクト、XDocument オブジェクト、XElement オブジェクトのコレクション、または XDocument オブジェクトのコレクションのいずれかの子にアクセスできます。

構文

object.<child>

指定項目

用語 定義
object 必須です。 XElement オブジェクト、XDocument オブジェクト、XElement オブジェクトのコレクション、または XDocument オブジェクトのコレクションです。
.< 必須です。 子軸プロパティの開始を示します。
child 必須です。 アクセスする子ノードの名前です。[prefix:]name の形式で指定します。

- Prefix - 省略可能。 子ノードの XML 名前空間プレフィックスです。 Imports ステートメントを使用して定義されているグローバル XML 名前空間を指定する必要があります。
- Name - 必須。 ローカル子ノードの名前です。 「宣言する XML 要素と属性の名前」を参照してください。
> 必須です。 子軸プロパティの終了を示します。

戻り値

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

Remarks

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

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

XML 名前空間

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

例 1

次の例は、contact オブジェクトの phone という名前の子ノードにアクセスする方法を示しています。

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

Dim homePhone = From hp In contact.<phone> 
                Where contact.<phone>.@type = "home" 
                Select hp

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

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

Home Phone = 206-555-0144

例 2

次の例は、contacts オブジェクトの contact 子軸プロパティによって返されたコレクションの、phone という名前の子ノードにアクセスする方法を示しています。

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

Dim homePhone = From contact In contacts.<contact> 
                Where contact.<phone>.@type = "home" 
                Select contact.<phone>

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

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

Home Phone = 206-555-0144

例 3

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

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

    Shared Sub TestPrefix()
        Dim contact = <ns:contact>
                        <ns:name>Patrick Hines</ns:name>
                      </ns:contact>
        Console.WriteLine(contact.<ns:name>.Value)
    End Sub

End Class

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

Patrick Hines

関連項目