Visão geral da classe XElement
A XElement classe é uma das classes fundamentais em LINQ to XML. Ele representa um elemento XML. A lista a seguir mostra para que você pode usar essa classe:
- Crie elementos.
- Altere o conteúdo do elemento.
- Adicione, altere ou exclua elementos filho.
- Adicione atributos a um elemento.
- Serialize o conteúdo de um elemento em forma de texto.
Você também pode interoperar com outras classes em System.Xml, como XmlReader, XmlWritere XslCompiledTransform.
Este artigo descreve a funcionalidade fornecida pela XElement classe.
Construir árvores XML
Você pode construir árvores XML de diferentes maneiras, incluindo o seguinte:
- Você pode construir uma árvore XML no código. Para obter mais informações, consulte Árvores XML.
- Você pode analisar XML de várias fontes, incluindo arquivos TextReaderde texto ou um endereço da Web (URL). Para obter mais informações, consulte Analisar XML.
- Você pode usar um XmlReader para preencher a árvore. Para obter mais informações, veja ReadFrom.
- Se você tiver um módulo que pode 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 gravado no XmlWriter para preencher a árvore XML.
O exemplo a seguir cria uma árvore. A versão em C# usa criações de elementos aninhados. Você pode usar a mesma técnica no Visual Basic, mas este exemplo usa literais XML.
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 preencher uma árvore XML, conforme mostrado no exemplo a 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 produz a seguinte saída:
<Root>
<Child>1</Child>
<Child>2</Child>
<Element>3</Element>
<Element>4</Element>
<Element>5</Element>
</Root>
Serializar árvores XML
Você pode serializar a árvore XML para um File, a TextWriterou um XmlWriter.
Para obter mais informações, consulte Serializar árvores XML.
Recuperar dados XML por meio de métodos de eixo
Você pode usar métodos axis para recuperar atributos, elementos filho, elementos descendentes e elementos ancestrais. As consultas LINQ to XML operam em métodos de eixo e fornecem várias maneiras flexíveis e poderosas de navegar e processar uma árvore XML.
Para obter mais informações, consulte Visão geral dos eixos LINQ to XML.
Árvores XML de consulta
Você pode escrever consultas LINQ to XML que extraem dados de uma árvore XML.
Para obter mais informações, consulte Visão geral de árvores XML de consulta.
Modificar árvores XML
Você pode modificar um elemento de diferentes maneiras, incluindo alterar seu conteúdo ou atributos. Você também pode remover um elemento de seu pai.
Para obter mais informações, consulte Modificar árvores XML.