XML 属性 (Attribute) 轴属性 (Property)

更新:2007 年 11 月

提供对 XElement 对象或 XElement 对象集合中的第一个元素的属性 (Attribute) 值的访问。

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

组成部分

  • object
    必需。一个 XElement 对象或 XElement 对象的集合。

  • .@
    必需。表示属性 (Attribute) 轴属性 (Property) 的开头。

  • <
    可选。当 attribute 不是 Visual Basic 中的有效标识符时,表示属性名称的开头。

  • attribute
    必需。要访问的属性的名称,形式为 [prefix:]name。

    组成部分

    说明

    prefix

    可选。属性的 XML 命名空间前缀。必须是使用 Imports 语句定义的全局 XML 命名空间。

    name

    必需。本地属性名称。请参见已声明的 XML 元素和属性的名称

  • >
    可选。当 attribute 不是 Visual Basic 中的有效标识符时,表示属性名称的结尾。

返回值

一个字符串,包含属性的值。

备注

使用 XML 属性 (Attribute) 轴属性 (Property) 可以按名称从 XElement 对象或 XElement 对象集合中的第一个元素访问属性值。可以按名称检索属性值,也可以通过指定以 @ 标识符开头的新名称将新属性添加到元素中。

当使用 @ 标识符引用 XML 属性 (Attribute) 时,属性 (Attribute) 值是以字符串的形式返回的,并且无需显式指定 Value 属性 (Property)。

XML 属性的命名规则与 Visual Basic 标识符的命名规则不同。若要访问名称不是 Visual Basic 有效标识符的 XML 属性,请将名称括在尖括号(< 和 >)中。

XML 命名空间

属性 (Attribute) 轴属性 (Property) 中的名称只能使用通过 Imports 语句全局声明的 XML 命名空间前缀。不能使用在 XML 元素文本中局部声明的 XML 命名空间前缀。有关更多信息,请参见 Imports 语句(XML 命名空间)

示例

下面的示例演示如何从名为 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>

下面的示例演示为 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>

下面的示例使用尖括号语法来获取名为 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

下面的示例将 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

请参见

概念

已声明的 XML 元素和属性的名称

参考

XElement

其他资源

XML 轴属性

XML 文本

在 Visual Basic 中创建 XML