Propiedad Axis para atributo XML
Actualización: noviembre 2007
Proporciona el acceso al valor de un atributo para un objeto XElement o el primer elemento de una colección de los objetos XElement.
object.@attribute
-or-
object.@<attribute>
Partes
object
Necesario. Objeto XElement o colección de objetos XElement..@
Necesario. Denota el inicio de una propiedad de eje de atributo.<
Opcional. Denota el principio del nombre del atributo cuando attribute no es un identificador válido en Visual Basic.attribute
Necesario. Nombre del atributo para obtener acceso, con el formato [prefix:]name.Parte
Description
prefix
Opcional. Prefijo de espacio de nombres XML del atributo. Debe ser un espacio de nombres XML global definido con una instrucción Imports.
name
Necesario. Nombre de atributo local. Visite Nombres de atributos y elementos XML declarados.
>
Opcional. Denota el final del nombre del atributo cuando attribute no es un identificador válido en Visual Basic.
Valor devuelto
Cadena que contiene el valor del atributo.
Comentarios
Puede utilizar una propiedad de eje de atributo XML para tener acceso al valor de un atributo por nombre desde un objeto XElement o el primer elemento de una colección de objetos XElement. Puede recuperar un valor de atributo por nombre o agregar un nuevo atributo a un elemento especificando un nuevo nombre precedido por el identificador @.
Al hacer referencia al valor de un atributo XML mediante el identificador @, el valor del atributo se devuelve como cadena y no se necesita especificar explícitamente la propiedad Value.
Las reglas de nomenclatura de los atributos XML difieren de las de los identificadores de Visual Basic. Para tener acceso a un atributo XML que tiene un nombre que no es un identificador de Visual Basic válido, ponga el nombre entre corchetes angulares (< y >).
Espacios de nombres XML
El nombre en una propiedad de eje de atributo sólo puede utilizar prefijos del espacio de nombres XML declarados globalmente mediante la instrucción Imports. No puede usar prefijos de espacio de nombres XML declarados localmente dentro de los literales de elemento XML. Para obtener más información, consulte Imports (Instrucción, Espacio de nombres XML).
Ejemplo
El ejemplo siguiente muestra cómo obtener los valores de los atributos XML denominados type a partir de una colección de elementos XML que se denominan phone.
' 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)
Este código muestra el texto siguiente:
<phoneTypes>
<type>home</type>
<type>work</type>
</phoneTypes>
El ejemplo siguiente muestra cómo crear los atributos de un elemento XML tanto mediante declaración, como parte del XML, como dinámicamente agregando un atributo a una instancia de un objeto XElement. Se crea el atributo type mediante declaración y el atributo owner dinámicamente.
Dim phone2 As XElement = <phone type="home">206-555-0144</phone>
phone2.@owner = "Harris, Phyllis"
Console.WriteLine(phone2)
Este código muestra el texto siguiente:
<phone type="home" owner="Harris, Phyllis">206-555-0144</phone>
El ejemplo siguiente utiliza la sintaxis de corchetes angulares para obtener el valor del atributo XML denominado number-type, que no es un identificador válido en Visual Basic.
Dim phone As XElement = _
<phone number-type=" work">425-555-0145</phone>
Console.WriteLine("Phone type: " & phone.@<number-type>)
Este código muestra el texto siguiente:
Phone type: work
En el ejemplo siguiente se declara ns como prefijo de espacio de nombres XML. A continuación, se usa el prefijo del espacio de nombres para crear un literal XML y obtener acceso al primer nodo secundario con el nombre completo "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
Este código muestra el texto siguiente:
Phone type: home
Vea también
Conceptos
Nombres de atributos y elementos XML declarados