Início > LINQ > LINQ to XML

LINQ to XML

Continuando a falar sobre LINQ, esse arquivo irá abordar LINQ to XML. Com o LINQ to XML poderemos realizar consultas e extrair dados de um arquivo XML, vamos montar um exemplo, primeiro criei um arquivo XML conforme exemplo abaixo:

<?xml version="1.0" encoding="utf-8"?>
<GrupoMusical xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Grupo>
    <Nome>Shakira Isabel Mebarak</Nome>
    <Genero>Pop Rock</Genero>
    <Pais>Colômbia</Pais>
  </Grupo>
  <Grupo>
    <Nome>U2</Nome>
    <Genero>Rock</Genero>
    <Pais>Irlanda</Pais>
  </Grupo>
  <Grupo>
    <Nome>Guns N' Roses</Nome>
    <Genero>Rock</Genero>
    <Pais>EUA</Pais>
  </Grupo>
</GrupoMusical>

Para realizar o LINQ no arquivo precisamos utilizar primeiro o namespace System.Xml.Linq que contém as classes para realizamos o LINQ to SQL.

Crie um projeto WPF com um botão e um grid, conforme imagem abaixo:

Não esqueça de adicionar ao seu projeto o arquivo XML que você gerou. Altere a propriedade do grid AutoGenerateColumns para true.

No evento Click do botão coloque o seguinte código

            XElement grupos = null;

            grupos = XElement.Load(@"Grupo.xml");

            var query = (from g in grupos.Elements("Grupo")
                         select new
                         {
                             Nome = g.Element("Nome").Value,
                             Genero = g.Element("Genero").Value,
                             Pais = g.Element("Pais").Value
                         });

            dataGrid1.ItemsSource = query.ToList();

As explicações: criamos um objeto do tipo XElement que recebe no seu construtor o caminho do arquivo XML. Esse objeto expõe o conteúdo do arquivo XML, podemos além de realizar LINQ, inserir, alterar e excluir elementos (não é o caso desse artigo).

Ao criar o LINQ fizemos grupos.Elements(“Grupo”), o Elements retorna uma coleção dos elementos filhos do elemento que informamos no exemplo informamos o elemento “Grupo”.

Dentro do Select utilizamos g.Element().Value, onde Element retorna o primeiro elemento com o valor. E por fim pegamos o resultado e exibimos no grid.

Veja o resultado abaixo.

Espero que tenham gostado e até a próxima.

Anúncios
Categorias:LINQ Tags:, ,
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: