Propriedade do eixo do atributo XML (Visual Basic)
Fornece acesso ao valor de um atributo para um XElement objeto ou ao primeiro elemento de uma coleção de XElement objetos.
Sintaxe
object.@attribute
' -or-
object.@<attribute>
Partes
object
Necessário. Um XElement objeto ou uma coleção de XElement objetos.
.@ Obrigatório. Indica o início de uma propriedade de eixo de atributo.
< Opcional. Indica o início do nome do atributo quando attribute
não é um identificador válido no Visual Basic.
attribute
Necessário. Nome do atributo a acessar, do formulário [prefix
:]name
.
Parte | Description |
---|---|
prefix |
Opcional. Prefixo de namespace XML para o atributo. Deve ser um namespace XML global definido com uma Imports instrução. |
name |
Obrigatório. Nome do atributo local. Consulte Nomes de elementos e atributos XML declarados. |
> Opcional. Indica o final do nome do atributo quando attribute
não é um identificador válido no Visual Basic.
Devolver Valor
Uma cadeia de caracteres que contém o valor de attribute
. Se o nome do atributo não existir, Nothing
será retornado.
Observações
Você pode usar uma propriedade de eixo de atributo XML para acessar o valor de um atributo por nome de um XElement objeto ou do primeiro elemento em uma coleção de XElement objetos. Você pode recuperar um valor de atributo por nome ou adicionar um novo atributo a um elemento especificando um novo nome precedido pelo identificador @.
Quando você se refere a um atributo XML usando o identificador @, o valor do atributo é retornado como uma cadeia de caracteres e você não precisa especificar explicitamente a Value propriedade.
As regras de nomenclatura para atributos XML diferem das regras de nomenclatura para identificadores do Visual Basic. Para acessar um atributo XML que tenha um nome que não seja um identificador válido do Visual Basic, coloque o nome entre colchetes angulares (< e >).
XML Namespaces
O nome em uma propriedade de eixo de atributo pode usar apenas prefixos de namespace XML declarados globalmente usando a Imports
instrução. Ele não pode usar prefixos de namespace XML declarados localmente em literais de elemento XML. Para obter mais informações, consulte Instrução de importação (namespace XML).
Exemplo 1
O exemplo a seguir mostra como obter os valores dos atributos XML nomeados type
de uma coleção de elementos XML que são nomeados 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 exibe o seguinte texto:
<phoneTypes>
<type>home</type>
<type>work</type>
</phoneTypes>
Exemplo 2
O exemplo a seguir mostra como criar atributos para um elemento XML declarativamente, como parte do XML, e dinamicamente, adicionando um atributo a uma instância de um XElement objeto. O type
atributo é criado declarativamente e o owner
atributo é criado dinamicamente.
Dim phone2 As XElement = <phone type="home">206-555-0144</phone>
phone2.@owner = "Harris, Phyllis"
Console.WriteLine(phone2)
Este código exibe o seguinte texto:
<phone type="home" owner="Harris, Phyllis">206-555-0144</phone>
Exemplo 3
O exemplo a seguir usa a sintaxe de colchete angular para obter o valor do atributo XML chamado number-type
, que não é um identificador válido no Visual Basic.
Dim phone As XElement =
<phone number-type=" work">425-555-0145</phone>
Console.WriteLine("Phone type: " & phone.@<number-type>)
Este código exibe o seguinte texto:
Phone type: work
Exemplo 4
O exemplo a seguir declara ns
como um prefixo de namespace XML. Em seguida, ele usa o prefixo do namespace para criar um literal XML e acessar o primeiro nó filho com o nome qualificado "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 exibe o seguinte texto:
Phone type: home