次の方法で共有


XML 属性軸プロパティ (Visual Basic)

XElement オブジェクトの属性の値、またはXElement オブジェクトのコレクション内の最初の要素へのアクセスを提供します。

構文

object.@attribute
' -or-
object.@<attribute>

部品

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

.@ 必須。 属性軸プロパティの開始位置を示します。

< 省略可能です。 attributeが Visual Basic の有効な識別子でない場合に、属性の名前の先頭を示します。

attribute 必須。 [prefix:]name形式の、アクセスする属性の名前。

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

> 省略可能です。 attributeが Visual Basic の有効な識別子でない場合に、属性の名前の末尾を示します。

戻り値

attributeの値を含む文字列。 属性名が存在しない場合は、 Nothing が返されます。

注釈

XML 属性軸プロパティを使用すると、 XElement オブジェクトまたは XElement オブジェクトのコレクション内の最初の要素から、名前によって属性の値にアクセスできます。 属性の値は、名前で取得することも、@識別子の前に新しい名前を指定して要素に新しい属性を追加することもできます。

@ 識別子を使用して XML 属性を参照する場合、属性値は文字列として返されるため、 Value プロパティを明示的に指定する必要はありません。

XML 属性の名前付け規則は、Visual Basic 識別子の名前付け規則とは異なります。 有効な Visual Basic 識別子ではない名前を持つ XML 属性にアクセスするには、名前を山かっこ (< と >) で囲みます。

XML 名前空間

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

例 1

次の例は、phoneという名前の XML 要素のコレクションから type という名前の 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 名前空間プレフィックスとして宣言します。 次に、名前空間のプレフィックスを使用して 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

こちらも参照ください