Partilhar via


Visão geral da classe XElement

A classe XElement é uma das classes fundamentais no LINQ to XML. Representa um elemento XML. Você pode usar essa classe para criar elementos; alterar o conteúdo do elemento; adicionar, alterar ou excluir elementos filho; adicionar atributos a um elemento; ou serializar o conteúdo de um elemento no formulário de texto. Você também pode interoperar com outras classes no System.Xml, como XmlReader, XmlWriter e XslCompiledTransform.

Funcionalidade de XElement

Este tópico descreve a funcionalidade fornecida pela classe XElement.

Construindo árvores XML

Você pode construir árvores XML em uma variedade de maneiras, incluindo:

  • Você pode construir uma árvore XML em código. Para obter mais informações, consulte Criando árvores XML.

  • Você pode analisar XML de várias fontes, incluindo TextReader, arquivos de texto ou um endereço Web (URL). Para obter mais informações, consulte Analisando XML.

  • Você pode usar um XmlReader para popular a árvore. Para obter mais informações, consulte ReadFrom.

  • Se você tiver um módulo que possa gravar conteúdo em um XmlWriter, poderá usar o método CreateWriter para criar um gravador, passar o gravador para o módulo e usar o conteúdo que está gravado no XmlWriter para popular a árvore XML.

No entanto, a maneira mais comum de criar uma árvore XML é a seguinte:

XElement contacts =
    new XElement("Contacts",
        new XElement("Contact",
            new XElement("Name", "Patrick Hines"), 
            new XElement("Phone", "206-555-0144"),
            new XElement("Address",
                new XElement("Street1", "123 Main St"),
                new XElement("City", "Mercer Island"),
                new XElement("State", "WA"),
                new XElement("Postal", "68042")
            )
        )
    );
Dim contacts As XElement = _
    <Contacts>
        <Contact>
            <Name>Patrick Hines</Name>
            <Phone>206-555-0144</Phone>
            <Address>
                <Street1>123 Main St</Street1>
                <City>Mercer Island</City>
                <State>WA</State>
                <Postal>68042</Postal>
            </Address>
        </Contact>
    </Contacts>

Outra técnica muito comum para criar uma árvore XML envolve o uso dos resultados de uma consulta LINQ para popular uma árvore XML, conforme mostrado no exemplo o seguir:

XElement srcTree = new XElement("Root",
    new XElement("Element", 1),
    new XElement("Element", 2),
    new XElement("Element", 3),
    new XElement("Element", 4),
    new XElement("Element", 5)
);
XElement xmlTree = new XElement("Root",
    new XElement("Child", 1),
    new XElement("Child", 2),
    from el in srcTree.Elements()
    where (int)el > 2
    select el
);
Console.WriteLine(xmlTree);
Dim srcTree As XElement = _
    <Root>
        <Element>1</Element>
        <Element>2</Element>
        <Element>3</Element>
        <Element>4</Element>
        <Element>5</Element>
    </Root>
Dim xmlTree As XElement = _
    <Root>
        <Child>1</Child>
        <Child>2</Child>
        <%= From el In srcTree.Elements() _
            Where el.Value > 2 _
            Select el %>
    </Root>
Console.WriteLine(xmlTree)

Este exemplo gera a seguinte saída:

<Root>
  <Child>1</Child>
  <Child>2</Child>
  <Element>3</Element>
  <Element>4</Element>
  <Element>5</Element>
</Root>

Serializando árvores XML

Você pode serializar a árvore XML para um File, um TextWriter ou um XmlWriter.

Para obter mais informações, consulte Serializando árvores XML.

Recuperando dados XML por meio de métodos de eixo

Você pode usar métodos de eixo para recuperar atributos, elementos filho, elementos descendentes e elementos ancestrais. As consultas LINQ operam em métodos de eixo e fornecem várias maneiras flexíveis e avançadas de navegar por uma árvore XML e de processá-la.

Para obter mais informações, consulte Eixos LINQ to XML.

Consultando árvores XML

Você pode escrever consultas LINQ que extraem dados de uma árvore XML.

Para obter mais informações, consulte Consultando árvores XML.

Modificando árvores XML

Você pode modificar um elemento de várias maneiras, incluindo alterar seu conteúdo ou atributos. Você também pode remover um elemento de seu pai.

Para obter mais informações, consulte Modificando árvores XML (LINQ to XML).

Consulte também

Conceitos

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