分享方式:


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

備註

您可以使用 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

下列範例會使用角括弧語法來取得名為 number-type 的 XML 屬性值,這在 Visual Basic 中不是有效的識別碼。

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

另請參閱