none
Dúvida em query com linq to xml RRS feed

  • Pergunta

  • Olá, Boa Noite, 

    Estou tentando selecionar uns registros de um xml e não conseguindo filtrar pelos atributos, preciso que seja retornado um List<DateTime>, tentei as seguintes querys, mas não retornou o resultado esperado.

     

    <?xml version="1.0" encoding="utf-8" ?>
    <feriados>
     <service name="BS_GL,BS_GBA">
      <data>06/06/2011</data>
      <data>08/06/2011</data>
      <data>11/06/2011</data>
     </service>
     <service name="NOT_GL,JD_GL">
      <data>06/06/2011</data>
      <data>08/06/2011</data>
      <data>11/06/2011</data>
     </service>
    </feriados>
    


     

     

    var teste = from c in _xmlFeriados.Elements("feriados").Elements("service")
    	where c.Attribute("name").Value.Contains(service)
    	select c.Descendants("data").ToList();
    
    

     

    Essa retorna 1 registro que contém o array

     

    var teste = (from c in _xmlFeriados.Elements("feriados").Elements("service")
    			 where c.Attribute("name").Value.Contains(service)
    			 select c.Element("data"));
    
    
    Esse retorna apenas o primeiro elemento

     

    Obrigado a todos.

     

     

     

     

    segunda-feira, 27 de junho de 2011 03:12

Respostas

  • Amigo, bom dia, veja um exemplo:

    System.Xml.Linq.XDocument xDoc = System.Xml.Linq.XDocument.Load(@"C:\xmlFeriados.txt");
    
        var query = from c in xDoc.Descendants("service").Where(c => c.Attribute("name").Value.Equals("NOT_GL,JD_GL"))
              from d in c.Elements("data")
              select new { data = DateTime.Parse(d.Value) };
    
    
        var lst = query.ToList();
    



    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    segunda-feira, 27 de junho de 2011 12:06
    Moderador

Todas as Respostas

  • Amigo, bom dia, veja um exemplo:

    System.Xml.Linq.XDocument xDoc = System.Xml.Linq.XDocument.Load(@"C:\xmlFeriados.txt");
    
        var query = from c in xDoc.Descendants("service").Where(c => c.Attribute("name").Value.Equals("NOT_GL,JD_GL"))
              from d in c.Elements("data")
              select new { data = DateTime.Parse(d.Value) };
    
    
        var lst = query.ToList();
    



    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    segunda-feira, 27 de junho de 2011 12:06
    Moderador
  • Perfeito, muito obrigado Olavo, sou novo com LINQ não sabia que podia usar vários from =).

    Abraços.

     

    segunda-feira, 27 de junho de 2011 16:17