XML 属性軸プロパティ (Visual Basic)
XElement オブジェクトの属性の値または XElement オブジェクト コレクションの最初の要素にアクセスできるようにします。
構文
object.@attribute
' -or-
object.@<attribute>
指定項目
object
必須。 XElement オブジェクトまたは XElement オブジェクトのコレクション。
.@ 必須。 属性軸プロパティの先頭を表します。
< 省略可能。 Visual Basic で attribute
が有効な識別子ではない場合に、属性の名前の先頭を表します。
attribute
必須。 アクセスする属性の名前。[prefix
:]name
の形式で指定します。
パーツ | 説明 |
---|---|
prefix |
任意。 属性の XML 名前空間プレフィックス。 Imports ステートメントを使用して定義されているグローバル XML 名前空間を指定する必要があります。 |
name |
必須です。 ローカル属性名。 「宣言する XML 要素と属性の名前」を参照してください。 |
> 省略可能。 Visual Basic で attribute
が有効な識別子ではない場合に、属性の名前の末尾を表します。
戻り値
attribute
の値を格納する文字列。 属性名が存在しない場合は Nothing
が返されます。
Remarks
XML 属性軸プロパティを使用すると、名前を指定して、XElement オブジェクトまたは XElement オブジェクト コレクションの最初の要素から属性値にアクセスできます。 名前を使って属性値を取得することも、新しい名前の前に @ 識別子を指定して新しい属性を要素に追加することもできます。
@ 識別子を使用して XML 属性を参照すると、属性値は文字列として返されるため、Value プロパティを明示的に指定する必要がありません。
XML 属性の名前付けルールは、Visual Basic 識別子の名前付けルールとは異なります。 名前が有効な Visual Basic 識別子ではない XML 属性にアクセスするには、山かっこ (< および >) で名前を囲みます。
XML 名前空間
属性軸プロパティの名前では、Imports
ステートメントを使用してグローバルに宣言されている XML 名前空間プレフィックスのみを使用できます。 XML 要素リテラル内でローカルに宣言されている XML 名前空間プレフィックスは使用できません。 詳細については、「Imports ステートメント (XML 名前空間)」を参照してください。
例 1
次の例は、type
という名前の XML 属性の値を、phone
という名前の XML 要素のコレクションから取得する方法を示しています。
' Topic: XML Attribute Axis Property
Dim phones As XElement =
<phones>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</phones>
Dim phoneTypes As XElement =
<phoneTypes>
<%= From phone In phones.<phone>
Select <type><%= phone.@type %></type>
%>
</phoneTypes>
Console.WriteLine(phoneTypes)
このコードを実行すると、次のテキストが表示されます。
<phoneTypes>
<type>home</type>
<type>work</type>
</phoneTypes>
例 2
次の例は、XML 要素の属性を、宣言によって XML の一部として作成する方法と、XElement オブジェクトのインスタンスに属性を追加して動的に作成する方法の両方を示しています。 type
属性は宣言によって作成され、owner
属性は動的に作成されています。
Dim phone2 As XElement = <phone type="home">206-555-0144</phone>
phone2.@owner = "Harris, Phyllis"
Console.WriteLine(phone2)
このコードを実行すると、次のテキストが表示されます。
<phone type="home" owner="Harris, Phyllis">206-555-0144</phone>
例 3
次の例では、山かっこ構文を使用して、Visual Basic の有効な識別子ではない、number-type
という名前の XML 属性値を取得します。
Dim phone As XElement =
<phone number-type=" work">425-555-0145</phone>
Console.WriteLine("Phone type: " & phone.@<number-type>)
このコードを実行すると、次のテキストが表示されます。
Phone type: work
例 4
次の例では、ns
を名前空間プレフィックスとして宣言します。 その後、この名前空間のプレフィックスを使用して XML リテラルを作成し、修飾名が "ns:name
" の最初の子ノードにアクセスします。
Imports <xmlns:ns = "http://SomeNamespace">
Class TestClass3
Shared Sub TestPrefix()
Dim phone =
<ns:phone ns:type="home">206-555-0144</ns:phone>
Console.WriteLine("Phone type: " & phone.@ns:type)
End Sub
End Class
このコードを実行すると、次のテキストが表示されます。
Phone type: home
関連項目
.NET