LinqToXML: facilitando a busca em XML

Postado por: Tiago Lemos em 22nd dez, 2008 | Categoria: ASP.NET, C#, Linq

Mais simples do que realizar uma busca usando LinqToSQL (veja o post aqui), é realizar uma busca em um arquivo XML usando LinqToXML.

Vamos logo ao que interessa, ou seja, o código.

Primeiros devemos montar um arquivo do tipo XML.


<?xml version="1.0" encoding="utf-8" ?>
<garage>
  <carro>
    <cor>Azul</cor>
    <ano>2000</ano>
    <modelo>Gol</modelo>
  </carro>
  <carro>
    <cor>Preto</cor>
    <ano>2008</ano>
    <modelo>Palio</modelo>
  </carro>
  <carro>
    <cor>Branco</cor>
    <ano>2006</ano>
    <modelo>Uno</modelo>
  </carro>
</garage>

Agora devemos carregar o arquivo criado acima e em seguida realizarmos uma consulta usando LINQ para escrever o resultado.
Ao montar a consulta você poderá realizar qualquer tipo de filtro, pois, nosso XML já está em uma collection, o que nos permite realizar uma busca atráves do LINQ.


  //Carregue um arquivo do tipo XML
  XDocument xml = XDocument.Load(Server.MapPath("upload/Arquivo.xml"));

  //Recupere todos os nós do tipo "carro"
  //Logo em seguida renomeie para os campos que você está retornando
  var carros = from carro in xml.Descendants("carro")
  select new
  {
    Cores = carro.Element("cor").Value,
    Modelos = carro.Element("modelo").Value
  };

  //Realize um foreach em carros(Collections.Generic.IEnumerable)
  //e escreva usando um dos nomes que você criou para retorno em sua consulta
  foreach (var carro in carros)
  {
    Response.Write(carro.Cores);
  }

Bem simples hein!

Qualquer dúvida podem me escrever.

Espero que tenham gostado e em breve tem mais.

     Deixe seu comentário:





trackback Trackback URI | rsscomment RSS dos comentários