Compartilhar via


Visão geral da classe XAttribute

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.

Consulte também