提供对对象或对象集合XElement中第一个元素的属性XElement值的访问权限。
语法
object.@attribute
' -or-
object.@<attribute>
部件
object
必填。 对象 XElement 或对象的集合 XElement 。
.@ 必需。 表示属性轴属性的开始。
< 可选。 表示在 Visual Basic 中不是有效标识符时 attribute
属性名称的开头。
attribute
必填。 要访问的属性的名称,格式为 [prefix
:]name
。
部件 | DESCRIPTION |
---|---|
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
下面的示例演示如何获取从命名的 XML 元素集合中phone
命名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