Partilhar via


Visão geral da classe de XAttribute

Os atributos são pares nome/valor que são associados a um elemento. A classe de XAttribute representa atributos XML.

Visão Geral

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 deless são semelhantes. Uma expressão de consulta de LINQpara uma coleção de atributos parece muito semelhante a uma expressão de consulta de LINQpara uma coleção de elementos.

A ordem em que os atributos foram adicionados a um elemento é preservada. Isto é, quando você itera através de atributos, você ver na mesma ordem que foram adicionados.

O construtor de XAttribute

O seguinte construtor de classe XAttribute é aquele que você usará mais comumente:

Construtor

Descrição

XAttribute(XName name, object content)

Cria um objeto de XAttribute . O argumento de name especifica o nome do atributo; content especifica o conteúdo de atributo.

Criando um elemento com um atributo

O código 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);

Com Visual Basic, você pode usar literais XML:

Dim phone As XElement = <Phone Type="Home">555-555-5555</Phone>
Console.WriteLine(phone)

Este exemplo gera a seguinte saída:

<Phone Type="Home">555-555-5555</Phone>

Compilação funcional de atributos

Você pode criar objetos de XAttribute na linha de compilação de objetos XElement , como segue:

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 gera 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>

Os atributos não são nós

Há algumas diferenças entre atributos e elementos. os objetos deXAttribute não são nós na árvore XML. São pares nome/valor associados com um elemento XML. Em contraste com Document Object Model (DOM), este reflete mais apertadamente a estrutura XML. Embora os objetos de XAttribute não são realmente nós na árvore XML, trabalhar com objetos de XAttribute é muito semelhante a trabalhar com objetos de XElement .

Essa distinção importante é primeiro somente para os desenvolvedores que estão escrevendo código que funciona com as árvores XML no nível do nó. Muitos desenvolvedores não serão preocupados com essa distinção.

Consulte também

Conceitos

Visão geral da programação LINQ to XML