Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os atributos são pares nome-valor associados a um elemento. A XAttribute classe representa atributos XML.
Trabalhar com atributos em LINQ to XML é semelhante a trabalhar com elementos. Os construtores são semelhantes. Os métodos que você usa para recuperar coleções deles são semelhantes. Uma expressão de consulta LINQ para uma coleção de atributos é semelhante a uma expressão de consulta LINQ para uma coleção de elementos.
A ordem na qual os atributos foram adicionados a um elemento é preservada. Ou seja, quando você itera por meio dos atributos, você os vê na mesma ordem em que eles foram adicionados.
O construtor XAttribute
O seguinte construtor da XAttribute classe é aquele que você mais usará:
| Construtor | Descrição |
|---|---|
XAttribute(XName name, object content) |
Cria um objeto XAttribute. O name argumento especifica o nome do atributo; content especifica o conteúdo do atributo. |
Exemplo: criar um elemento com um atributo
O exemplo a seguir mostra a tarefa comum de criar um elemento que contém um atributo.
XElement phone = new XElement("Phone",
new XAttribute("Type", "Home"),
"555-555-5555");
Console.WriteLine(phone);
Dim phone As XElement = <Phone Type="Home">555-555-5555</Phone>
Console.WriteLine(phone)
Este exemplo produz a seguinte saída:
<Phone Type="Home">555-555-5555</Phone>
Exemplo: construção funcional de atributos
Você pode construir objetos XAttribute em linha com a construção de objetos XElement, conforme mostrado no seguinte exemplo:
XElement c = new XElement("Customers",
new XElement("Customer",
new XElement("Name", "John Doe"),
new XElement("PhoneNumbers",
new XElement("Phone",
new XAttribute("type", "home"),
"555-555-5555"),
new XElement("Phone",
new XAttribute("type", "work"),
"666-666-6666")
)
)
);
Console.WriteLine(c);
Dim c As XElement = _
<Customers>
<Customer>
<Name>John Doe</Name>
<PhoneNumbers>
<Phone type="home">555-555-5555</Phone>
<Phone type="work">666-666-6666</Phone>
</PhoneNumbers>
</Customer>
</Customers>
Console.WriteLine(c)
Este exemplo produz a seguinte saída:
<Customers>
<Customer>
<Name>John Doe</Name>
<PhoneNumbers>
<Phone type="home">555-555-5555</Phone>
<Phone type="work">666-666-6666</Phone>
</PhoneNumbers>
</Customer>
</Customers>
Atributos não são nós
Há algumas diferenças entre atributos e elementos. Os objetos XAttribute não são nós na árvore XML. São pares nome-valor associados a um elemento XML. Em contraste com o DOM (Modelo de Objeto de Documento), isso reflete mais de perto a estrutura do XML. Embora XAttribute os objetos não sejam realmente nós na árvore XML, trabalhar com XAttribute objetos é semelhante a trabalhar com XElement objetos.
Essa distinção é importante apenas para desenvolvedores que estão escrevendo código que funciona com árvores XML em nível de nó. Muitos desenvolvedores não se preocuparão com essa distinção.