XML 子軸プロパティ
更新 : 2007 年 11 月
XElement オブジェクト、XDocument オブジェクト、XElement オブジェクトのコレクション、または XDocument オブジェクトのコレクションのいずれかの子へのアクセスを提供します。
object.<child>
指定項目
object
必ず指定します。XElement オブジェクト、XDocument オブジェクト、XElement オブジェクトのコレクション、または XDocument オブジェクトのコレクションです。.<
必ず指定します。子軸プロパティの開始を示します。child
必ず指定します。アクセスする子ノードの名前です。[prefix:]name の形式で指定します。指定項目
説明
prefix
省略可能です。子ノードの XML 名前空間プレフィックス。Imports ステートメントを使用して定義されているグローバル XML 名前空間を指定する必要があります。
name
必ず指定します。ローカル子ノード名。「宣言する XML 要素と属性の名前」を参照してください。
>
必ず指定します。子軸プロパティの終了を示します。
戻り値
XElement オブジェクトのコレクション。
解説
XML 子軸プロパティを使用すると、XElement オブジェクト、XDocument オブジェクト、XElement オブジェクトのコレクション、または XDocument オブジェクトのコレクションの子ノードに、名前でアクセスできます。返されるコレクションの最初の子ノードの値にアクセスするには、XML の Value プロパティを使用します。詳細については、「XML Value プロパティ」を参照してください。
Visual Basic コンパイラは、子軸プロパティを Elements メソッドの呼び出しに変換します。
XML 名前空間
子軸プロパティの名前では、Imports ステートメントでグローバルに宣言されている XML 名前空間プレフィックスのみを使用できます。XML 要素リテラル内でローカルに宣言されている XML 名前空間プレフィックスは使用できません。詳細については、「Imports ステートメント (XML 名前空間)」を参照してください。
使用例
次の例は、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
次の例は、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
次の例では、ns を XML 名前空間プレフィックスとして宣言します。その後、この名前空間のプレフィックスを使用して 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