Visão geral da classe XElementXElement class overview

A XElement classe é uma das classes fundamentais em LINQ to XML.The XElement class is one of the fundamental classes in LINQ to XML. Representa um elemento XML.It represents an XML element. A lista a seguir mostra como você pode usar essa classe para:The following list shows what you can use this class for:

  • Criar elementos.Create elements.
  • Altere o conteúdo do elemento.Change the content of the element.
  • Adicionar, alterar ou excluir elementos filho.Add, change, or delete child elements.
  • Adicionar atributos a um elemento.Add attributes to an element.
  • Serialize o conteúdo de um elemento na forma de texto.Serialize the contents of an element in text form.

Você também pode interoperar com outras classes no System.Xml, como XmlReader, XmlWriter e XslCompiledTransform.You can also interoperate with other classes in System.Xml, such as XmlReader, XmlWriter, and XslCompiledTransform.

Este artigo descreve a funcionalidade fornecida pela XElement classe.This article describes the functionality provided by the XElement class.

Construir árvores XMLConstruct XML trees

Você pode construir árvores XML de maneiras diferentes, incluindo as seguintes:You can construct XML trees in different ways, including the following:

  • Você pode construir uma árvore XML em código.You can construct an XML tree in code. Para obter mais informações, consulte árvores XML.For more information, see XML trees.
  • Você pode analisar XML de várias fontes, incluindo TextReader, arquivos de texto ou um endereço Web (URL).You can parse XML from various sources, including a TextReader, text files, or a Web address (URL). Para obter mais informações, consulte Parse XML.For more information, see Parse XML.
  • Você pode usar um XmlReader para popular a árvore.You can use an XmlReader to populate the tree. Para obter mais informações, consulte ReadFrom.For more information, see ReadFrom.
  • Se você tiver um módulo que possa gravar conteúdo em um XmlWriter , poderá usar o CreateWriter método para criar um gravador, passar o gravador para o módulo e, em seguida, usar o conteúdo que é gravado no XmlWriter para popular a árvore XML.If you have a module that can write content to an XmlWriter, you can use the CreateWriter method to create a writer, pass the writer to the module, and then use the content that's written to the XmlWriter to populate the XML tree.

O exemplo a seguir cria uma árvore.The following example creates a tree. A versão C# usa criações de elemento aninhado.The C# version uses nested element creations. Você pode usar a mesma técnica em Visual Basic, mas este exemplo usa literais XML.You can use the same technique in Visual Basic, but this example uses XML literals.

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>

Você também pode usar uma consulta LINQ to XML para popular uma árvore XML, conforme mostrado no exemplo a seguir:You can also use a LINQ to XML query to populate an XML tree, as shown in the following example:

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)

Esse exemplo gera a saída a seguir:This example produces the following output:

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

Serializar árvores XMLSerialize XML trees

Você pode serializar a árvore XML para um File, um TextWriter ou um XmlWriter.You can serialize the XML tree to a File, a TextWriter, or an XmlWriter.

Para obter mais informações, consulte Serialize árvores XML.For more information, see Serialize XML trees.

Recuperar dados XML por meio de métodos de eixoRetrieve XML data via axis methods

Você pode usar métodos de eixo para recuperar atributos, elementos filho, elementos descendentes e elementos ancestrais.You can use axis methods to retrieve attributes, child elements, descendant elements, and ancestor elements. LINQ to XML consultas operam em métodos de eixo e fornecem várias maneiras flexíveis e poderosas de navegar e processar uma árvore XML.LINQ to XML queries operate on axis methods, and provide several flexible and powerful ways to navigate through and process an XML tree.

Para obter mais informações, consulte visão geral dos eixos de LINQ to XML.For more information, see LINQ to XML axes overview.

Consultar árvores XMLQuery XML trees

Você pode escrever LINQ to XML consultas que extraem dados de uma árvore XML.You can write LINQ to XML queries that extract data from an XML tree.

Para obter mais informações, consulte visão geral das árvores XML de consulta.For more information, see Query XML trees overview.

Modificar árvores XMLModify XML trees

Você pode modificar um elemento de diferentes maneiras, incluindo a alteração de seu conteúdo ou atributos.You can modify an element in different ways, including changing its content or attributes. Você também pode remover um elemento de seu pai.You can also remove an element from its parent.

Para obter mais informações, consulte Modify XML Trees.For more information, see Modify XML trees.

Confira tambémSee also