Compartir a través de


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

Referencia

XElement

Otros recursos

Propiedades de eje XML

Literales XML

Crear XML en Visual Basic