none
Leitura XML RRS feed

  • Pergunta


  • Estou precisando de uma ajuda , estou lendo o XML abaixo so que só estou conseguindo ler os dados que estão dentro da TAG Silo os que estão dentro de Pendulos que pertence a Silo não consigo.

    <?xml version="1.0" encoding="utf-16"?>
    <Leitura xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <silos>
        <Silo>
          <ID>1</ID>
          <data>120716</data>
          <hora>0931</hora>
          <umidade>061</umidade>
          <temperatura>21</temperatura>
          <pendulos>
            <Pendulo>
              <ID_P>001</ID_P>
              <S>27</S>
              <S>27</S>
              <S>27</S>
              <S>27</S>
              <S>27</S>
              <S>27</S>
              <S>27</S>
              <S>25</S>
              <S>27</S>
              <S>27</S>
              <S>27</S>
              <S>25</S>
              <S>25</S>
              <S>25</S>
              <S>27</S>
              <S>27</S>
              <S />
            </Pendulo>
          </pendulos>
        </Silo>
       
       
        
      </silos>
    </Leitura>

    código fonte

    XDocument doc = XDocument.Load((CaminhoDadosXML(caminho) + @"Dados\120716.xml"));
                var prods = from p in doc.Descendants("silos")
                
                            select new
                            {
                                idsilo = p.Element("ID").Value,
                                data = p.Element("data").Value,
                                hora = p.Element("hora").Value,
                                umidade = p.Element("umidade").Value,
                                temperatura = p.Element("temperatura").Value,
                               idpendulo   = p.Element("ID_P").Value
                               sensor      = p.Element("S").Value
    
                            };
          
             
                    foreach (var p in prods)
                    {
                        lbProdutos.Items.Add("Silo: " + p.idsilo + "");
                        lbProdutos.Items.Add("Data: " + p.data + "");
                        lbProdutos.Items.Add("Hora: " + p.hora + "");
                        lbProdutos.Items.Add("Umidade: " + p.umidade + "");
                        lbProdutos.Items.Add("Temperatura: " + p.temperatura + "");
                        lbProdutos.Items.Add("Pendulo: " + p.idpendulo + "");
                        lbProdutos.Items.Add("sensor: " + p.sensor + "");
    
                    }
    
    
    
                }


    • Editado CLPSimens quinta-feira, 14 de julho de 2016 14:55
    quinta-feira, 14 de julho de 2016 14:44

Respostas

  • Boa noite,

    Acredito que entendi sim, inclusive realizei o teste e deu certo. Segue o código na integra:
    Carregando e lendo o Objeto

    XDocument doc = XDocument.Load((CaminhoDadosXML(caminho) + @"Dados\120716.xml"));
    
    Leitura leitura = FromXmlString(doc.InnerXml.ToString());
    
    int idsilo = leitura.silos.Silo.ID;
    string data = leitura.silos.Silo.data;
    string hora = leitura.silos.Silo.hora;
    string umidade = leitura.silos.Silo.umidade;
    string temperatura = leitura.silos.Silo.temperatura;
    int idpendulo = leitura.silos.Silo.pendulos.Pendulo.ID_P;
    
    //Percorrer os "S"
    foreach (var item in leitura.silos.Silo.pendulos.Pendulo.S)
    {
        Console.WriteLine(item.ToString());
    }

    Método para carregar objeto com a string "xml"

    public Leitura FromXmlString(string xmlString)
    {
        var reader = new StringReader(xmlString);
        var serializer = new XmlSerializer(typeof(Leitura));
        var instance = (Leitura)serializer.Deserialize(reader);
    
        return instance;
    }


    Classe criada a partir do XML:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace WindowsFormsApplication
    {
    
        /// <remarks/>
        [System.SerializableAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
        public partial class Leitura
        {
    
            private LeituraSilos silosField;
    
            /// <remarks/>
            public LeituraSilos silos
            {
                get
                {
                    return this.silosField;
                }
                set
                {
                    this.silosField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.SerializableAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilos
        {
    
            private LeituraSilosSilo siloField;
    
            /// <remarks/>
            public LeituraSilosSilo Silo
            {
                get
                {
                    return this.siloField;
                }
                set
                {
                    this.siloField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.SerializableAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilosSilo
        {
    
            private int idField;
    
            private string dataField;
    
            private string horaField;
    
            private string umidadeField;
    
            private string temperaturaField;
    
            private LeituraSilosSiloPendulos pendulosField;
    
            /// <remarks/>
            public int ID
            {
                get
                {
                    return this.idField;
                }
                set
                {
                    this.idField = value;
                }
            }
    
            /// <remarks/>
            public string data
            {
                get
                {
                    return this.dataField;
                }
                set
                {
                    this.dataField = value;
                }
            }
    
            /// <remarks/>
            public string hora
            {
                get
                {
                    return this.horaField;
                }
                set
                {
                    this.horaField = value;
                }
            }
    
            /// <remarks/>
            public string umidade
            {
                get
                {
                    return this.umidadeField;
                }
                set
                {
                    this.umidadeField = value;
                }
            }
    
            /// <remarks/>
            public string temperatura
            {
                get
                {
                    return this.temperaturaField;
                }
                set
                {
                    this.temperaturaField = value;
                }
            }
    
            /// <remarks/>
            public LeituraSilosSiloPendulos pendulos
            {
                get
                {
                    return this.pendulosField;
                }
                set
                {
                    this.pendulosField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.SerializableAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilosSiloPendulos
        {
    
            private LeituraSilosSiloPendulosPendulo penduloField;
    
            /// <remarks/>
            public LeituraSilosSiloPendulosPendulo Pendulo
            {
                get
                {
                    return this.penduloField;
                }
                set
                {
                    this.penduloField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.SerializableAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilosSiloPendulosPendulo
        {
    
            private int iD_PField;
    
            private string[] sField;
    
            /// <remarks/>
            public int ID_P
            {
                get
                {
                    return this.iD_PField;
                }
                set
                {
                    this.iD_PField = value;
                }
            }
    
            /// <remarks/>
            [System.Xml.Serialization.XmlElementAttribute("S")]
            public string[] S
            {
                get
                {
                    return this.sField;
                }
                set
                {
                    this.sField = value;
                }
            }
        }
    }

    Espero ter ajudado!

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.


    • Sugerido como Resposta Silvaney quarta-feira, 20 de julho de 2016 10:58
    • Editado Silvaney quarta-feira, 20 de julho de 2016 13:25 Alteração
    • Marcado como Resposta CLPSimens quarta-feira, 20 de julho de 2016 16:44
    quarta-feira, 20 de julho de 2016 00:22
  • Bom dia,

    O código esta completo amigo, fiz apenas uma correção agora.
    Se você copiar e colar ja vai funcionar.
    1 - Crie a classe "Leitura"
    2 - Crie o método que carrega o Objeto com os dados do XML "FromXmlString"
    3 - Só percorrer os dados do objeto

    Observação: O código foi testado diversas vezes ante de ser postado.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    quarta-feira, 20 de julho de 2016 13:29
  • Boa tarde,

    Troque por:

    Leitura leitura = FromXmlString(doc.ToString());

    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Marcado como Resposta CLPSimens quarta-feira, 20 de julho de 2016 20:15
    quarta-feira, 20 de julho de 2016 19:33
  • Bom dia,

    Amigo, segue a classe:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication
    {
        /// <remarks/>
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
        public partial class Leitura
        {
    
            private LeituraSilos silosField;
    
            /// <remarks/>
            public LeituraSilos silos
            {
                get
                {
                    return this.silosField;
                }
                set
                {
                    this.silosField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilos
        {
    
            private LeituraSilosSilo[] siloField;
    
            private string[] textField;
    
            /// <remarks/>
            [System.Xml.Serialization.XmlElementAttribute("Silo")]
            public LeituraSilosSilo[] Silo
            {
                get
                {
                    return this.siloField;
                }
                set
                {
                    this.siloField = value;
                }
            }
    
            /// <remarks/>
            [System.Xml.Serialization.XmlTextAttribute()]
            public string[] Text
            {
                get
                {
                    return this.textField;
                }
                set
                {
                    this.textField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilosSilo
        {
    
            private string idField;
    
            private string dataField;
    
            private string horaField;
    
            private string umidadeField;
    
            private string temperaturaField;
    
            private LeituraSilosSiloPendulos pendulosField;
    
            private string[] textField;
    
            /// <remarks/>
            public string ID
            {
                get
                {
                    return this.idField;
                }
                set
                {
                    this.idField = value;
                }
            }
    
            /// <remarks/>
            public string data
            {
                get
                {
                    return this.dataField;
                }
                set
                {
                    this.dataField = value;
                }
            }
    
            /// <remarks/>
            public string hora
            {
                get
                {
                    return this.horaField;
                }
                set
                {
                    this.horaField = value;
                }
            }
    
            /// <remarks/>
            public string umidade
            {
                get
                {
                    return this.umidadeField;
                }
                set
                {
                    this.umidadeField = value;
                }
            }
    
            /// <remarks/>
            public string temperatura
            {
                get
                {
                    return this.temperaturaField;
                }
                set
                {
                    this.temperaturaField = value;
                }
            }
    
            /// <remarks/>
            public LeituraSilosSiloPendulos pendulos
            {
                get
                {
                    return this.pendulosField;
                }
                set
                {
                    this.pendulosField = value;
                }
            }
    
            /// <remarks/>
            [System.Xml.Serialization.XmlTextAttribute()]
            public string[] Text
            {
                get
                {
                    return this.textField;
                }
                set
                {
                    this.textField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilosSiloPendulos
        {
    
            private LeituraSilosSiloPendulosPendulo[] penduloField;
    
            private string[] textField;
    
            /// <remarks/>
            [System.Xml.Serialization.XmlElementAttribute("Pendulo")]
            public LeituraSilosSiloPendulosPendulo[] Pendulo
            {
                get
                {
                    return this.penduloField;
                }
                set
                {
                    this.penduloField = value;
                }
            }
    
            /// <remarks/>
            [System.Xml.Serialization.XmlTextAttribute()]
            public string[] Text
            {
                get
                {
                    return this.textField;
                }
                set
                {
                    this.textField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilosSiloPendulosPendulo
        {
    
            private string iD_PField;
    
            private string[] sField;
    
            /// <remarks/>
            public string ID_P
            {
                get
                {
                    return this.iD_PField;
                }
                set
                {
                    this.iD_PField = value;
                }
            }
    
            /// <remarks/>
            [System.Xml.Serialization.XmlElementAttribute("S")]
            public string[] S
            {
                get
                {
                    return this.sField;
                }
                set
                {
                    this.sField = value;
                }
            }
        }
    }
    

    Carregando o objeto:

    XDocument doc = XDocument.Load(@"D:\leitura.xml");
    Leitura leitura = FromXmlString(doc.ToString());

    Pronto amigo, com o objeto carregado você pode fazer qualquer coisa.
    Qualquer dúvida, estou a disposição!

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney quinta-feira, 21 de julho de 2016 11:57
    • Marcado como Resposta CLPSimens quinta-feira, 21 de julho de 2016 13:20
    quinta-feira, 21 de julho de 2016 11:52
  • Bom dia,

    Segue um exemplo:
    Classe modelo

    public class Silo
    {
        public string ID { get; set; }
        public string Data { get; set; }
        public string Hora { get; set; }
        public string Umidade { get; set; }
        public string Temperatura { get; set; }
    }

    Consulta e preenchimento do DataGridView:

    XDocument doc = XDocument.Load(@"D:\leitura.xml");
    Leitura leitura = FromXmlString(doc.ToString());
    
    var silos = (from s in leitura.silos.Silo
                    select new Silo()
                    {
                        ID = s.ID,
                        Data = string.Format("{0}/{1}/{2}", s.data.Substring(0, 2), s.data.Substring(2, 2), s.data.Substring(4)),
                        Hora = s.hora,
                        Temperatura = s.temperatura,
                        Umidade = s.umidade
                    }).ToList();
    
    
    dataGridView1.DataSource = silos;

    Espero ter ajudado!

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney quinta-feira, 21 de julho de 2016 14:21
    • Marcado como Resposta CLPSimens quinta-feira, 21 de julho de 2016 14:30
    quinta-feira, 21 de julho de 2016 14:21
  • A partir dos exemplos postados você pode fazer qualquer coisa.
    O que precisa é você mentalizar como deseja fazer, pois você possui uma lista de silos, cada silo tem uma lista de Pendulos onde cada pendulo tem um id e uma lista de "S".
    É lógico que pra você montar uma grid com os dados vai precisar estruturar a maneira que deseja, pois os "S" dentro do pendulo pode variar, dessa forma não bastaria você colocar o id em uma coluna e carregar os "S" em outras pois não possui uma quantidade física.
    Mas se o que deseja é percorrer os Pendulos, (uma maneira simples) seria você percorrer (for) cada Silo e depois percorre o "S" de cada pendulo.

    Att,

     

    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Marcado como Resposta CLPSimens quinta-feira, 21 de julho de 2016 14:54
    quinta-feira, 21 de julho de 2016 14:53
  • Boa tarde,

    Segue um exemplo mais detalhado de como percorrer cada lista:

    XDocument doc = XDocument.Load(@"D:\leitura.xml");
    Leitura leitura = FromXmlString(doc.ToString());
    
    var silos = leitura.silos.Silo.ToList(); //selecionando todos os silos
    foreach (var p in silos)//Percorre os silos
    {
        var pendulos = p.pendulos.Pendulo.ToList(); //selecionando todos os pendulos de cada silo
        foreach (var item in pendulos)//Percorre os pendulos de cada silo
        {
            var pendulosS = item.S;// Obtendo todos os "S"
            foreach (var s in pendulosS)//Percorrendo os "S"
            {
                Console.WriteLine(string.Format("ID: {0}\tData: {1}\tID_P: {2}, S: {3}", p.ID, p.data, item.ID_P, s) );
            }
        }
    }
    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney quinta-feira, 21 de julho de 2016 17:37
    • Marcado como Resposta CLPSimens quinta-feira, 21 de julho de 2016 19:15
    quinta-feira, 21 de julho de 2016 17:37

Todas as Respostas

  • Bom dia,

    Você poderia criar uma classe com os atributos do xml e trabalhar com objetos: 

    Para gerar a classe, segue o seguinte procedimento:
     - Copie o xml (string) 
     - Crie uma classe
     - Remova "class nomeDaClasse{}", deixando só o namespace { }
     - No Visual Studio, clique em Edit -> Paste Special -> Paste XML as Classes

    Pronto, a classe vai estar criada de acordo com o xml.

    Para carregar o objeto com os dados do xml:

    public NomeDaClasse FromXmlString(string xmlString)
    {
        var reader = new StringReader(xmlString);
        var serializer = new XmlSerializer(typeof(NomeDaClasse));
        var instance = (NomeDaClasse)serializer.Deserialize(reader);
    
        return instance;
    }

    Espero ter ajudado.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    quinta-feira, 14 de julho de 2016 15:51
  • Obrigado Silvaney , mais acho que você nao intendeu uma parte esses dados

        idpendulo   = p.Element("ID_P").Value
                               sensor      = p.Element("S").Value

    não estao exibindo por que estão dentro da tag <pendulos> somente consigo ver os dados da <Silo>

    quinta-feira, 14 de julho de 2016 16:13
  • Boa tarde!

    Ja tentou obter essas informações com LINQ

    Ex:

    XDocument xdoc = XDocument.Load("meu_arquivo.xml"));

    var lv1s = from lv1 in xdoc.Descendants("level1")
                    select lv1.Attribute("name").Value;


    Rodolfo

    quinta-feira, 14 de julho de 2016 16:36
  • eu consigo receber as informações que estao dentro de  <silo> até <temperatura>quando vai ler os pendulos não entra no foreach .
    quinta-feira, 14 de julho de 2016 17:27
  • Boa tarde,

    Isso acontece porque o <pendulo> não é filho de <silo> e sim de <pendulos>, neste caso você precisa pegar os filhos de <pendulos> também, adicionando uma instrução no seu select:

    .Descendants("pendulos")

    Segue link com exemplo:

    http://stackoverflow.com/questions/19338296/accessing-nested-child-nodes


    Att,
    Leandro

    Se foi útil, marque como útil ou como resposta.

    • Sugerido como Resposta Leandro Tozetto quinta-feira, 14 de julho de 2016 17:57
    quinta-feira, 14 de julho de 2016 17:57
  • eu coloquei antes do select new ai ele me retorna esse erro 

     XDocument doc = XDocument.Load((CaminhoDadosXML(caminho) + @"Dados\120716.xml"));
                var prods = from p in doc.Descendants("silos").Descendants("pendulos")
                                     
                
                            select new
                            {
                                idsilo = p.Element("ID").Value,
                                data = p.Element("data").Value,
                                hora = p.Element("hora").Value,
                                umidade = p.Element("umidade").Value,
                                temperatura = p.Element("temperatura").Value,
                               idpendulo   = p.Element("ID_P").Value,
                               sensor      = p.Element("S").Value
    
                            };
          
             
                    foreach (var p in prods)
                    {
                        lbProdutos.Items.Add("Silo: " + p.idsilo + "");
                        lbProdutos.Items.Add("Data: " + p.data + "");
                        lbProdutos.Items.Add("Hora: " + p.hora + "");
                        lbProdutos.Items.Add("Umidade: " + p.umidade + "");
                        lbProdutos.Items.Add("Temperatura: " + p.temperatura + "");
                        lbProdutos.Items.Add("Pendulo: " + p.idpendulo + "");
                        lbProdutos.Items.Add("sensor: " + p.sensor + "");
    
                    }
    

    ele me retorna esse erro  : Referência de objeto não definida para uma instância de um objeto.

    quinta-feira, 14 de julho de 2016 19:14
  • não consigo ler o nó pendulos mesmo colocando 
    .Descendants("pendulos") 
    sexta-feira, 15 de julho de 2016 13:57
  • Boa tarde CLPSimens,

    é possível que não está funcionando porque você ainda precisa adicionar o namespace "http://www.lge.com/ddc"

    XNamespace ns = "http://www.lge.com/ddc";
    
    //...
    .Descendants("pêndulos")

    Atenciosamente,

    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    terça-feira, 19 de julho de 2016 20:12
    Moderador
  • Boa noite,

    Acredito que entendi sim, inclusive realizei o teste e deu certo. Segue o código na integra:
    Carregando e lendo o Objeto

    XDocument doc = XDocument.Load((CaminhoDadosXML(caminho) + @"Dados\120716.xml"));
    
    Leitura leitura = FromXmlString(doc.InnerXml.ToString());
    
    int idsilo = leitura.silos.Silo.ID;
    string data = leitura.silos.Silo.data;
    string hora = leitura.silos.Silo.hora;
    string umidade = leitura.silos.Silo.umidade;
    string temperatura = leitura.silos.Silo.temperatura;
    int idpendulo = leitura.silos.Silo.pendulos.Pendulo.ID_P;
    
    //Percorrer os "S"
    foreach (var item in leitura.silos.Silo.pendulos.Pendulo.S)
    {
        Console.WriteLine(item.ToString());
    }

    Método para carregar objeto com a string "xml"

    public Leitura FromXmlString(string xmlString)
    {
        var reader = new StringReader(xmlString);
        var serializer = new XmlSerializer(typeof(Leitura));
        var instance = (Leitura)serializer.Deserialize(reader);
    
        return instance;
    }


    Classe criada a partir do XML:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace WindowsFormsApplication
    {
    
        /// <remarks/>
        [System.SerializableAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
        public partial class Leitura
        {
    
            private LeituraSilos silosField;
    
            /// <remarks/>
            public LeituraSilos silos
            {
                get
                {
                    return this.silosField;
                }
                set
                {
                    this.silosField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.SerializableAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilos
        {
    
            private LeituraSilosSilo siloField;
    
            /// <remarks/>
            public LeituraSilosSilo Silo
            {
                get
                {
                    return this.siloField;
                }
                set
                {
                    this.siloField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.SerializableAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilosSilo
        {
    
            private int idField;
    
            private string dataField;
    
            private string horaField;
    
            private string umidadeField;
    
            private string temperaturaField;
    
            private LeituraSilosSiloPendulos pendulosField;
    
            /// <remarks/>
            public int ID
            {
                get
                {
                    return this.idField;
                }
                set
                {
                    this.idField = value;
                }
            }
    
            /// <remarks/>
            public string data
            {
                get
                {
                    return this.dataField;
                }
                set
                {
                    this.dataField = value;
                }
            }
    
            /// <remarks/>
            public string hora
            {
                get
                {
                    return this.horaField;
                }
                set
                {
                    this.horaField = value;
                }
            }
    
            /// <remarks/>
            public string umidade
            {
                get
                {
                    return this.umidadeField;
                }
                set
                {
                    this.umidadeField = value;
                }
            }
    
            /// <remarks/>
            public string temperatura
            {
                get
                {
                    return this.temperaturaField;
                }
                set
                {
                    this.temperaturaField = value;
                }
            }
    
            /// <remarks/>
            public LeituraSilosSiloPendulos pendulos
            {
                get
                {
                    return this.pendulosField;
                }
                set
                {
                    this.pendulosField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.SerializableAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilosSiloPendulos
        {
    
            private LeituraSilosSiloPendulosPendulo penduloField;
    
            /// <remarks/>
            public LeituraSilosSiloPendulosPendulo Pendulo
            {
                get
                {
                    return this.penduloField;
                }
                set
                {
                    this.penduloField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.SerializableAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilosSiloPendulosPendulo
        {
    
            private int iD_PField;
    
            private string[] sField;
    
            /// <remarks/>
            public int ID_P
            {
                get
                {
                    return this.iD_PField;
                }
                set
                {
                    this.iD_PField = value;
                }
            }
    
            /// <remarks/>
            [System.Xml.Serialization.XmlElementAttribute("S")]
            public string[] S
            {
                get
                {
                    return this.sField;
                }
                set
                {
                    this.sField = value;
                }
            }
        }
    }

    Espero ter ajudado!

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.


    • Sugerido como Resposta Silvaney quarta-feira, 20 de julho de 2016 10:58
    • Editado Silvaney quarta-feira, 20 de julho de 2016 13:25 Alteração
    • Marcado como Resposta CLPSimens quarta-feira, 20 de julho de 2016 16:44
    quarta-feira, 20 de julho de 2016 00:22
  • Opa Silvaney obrigado pela ajuda , não intendi muito bem seu código , pode postar ele completo ?
    quarta-feira, 20 de julho de 2016 11:59
  • Obrigado robson , eu testei assim 

     XNamespace ns = "http://www.lge.com/ddc";
                XDocument doc = XDocument.Load((CaminhoDadosXML(caminho) + @"Dados\120716.xml"));
                List<Silo> silos = new List<Silo>();
                {
                    Silo o = new Silo();
                    var prods = from p in doc.Descendants("Silo").Descendants(ns + "pendulos")

    mais nao deu certo

    quarta-feira, 20 de julho de 2016 12:00
  • Bom dia,

    O código esta completo amigo, fiz apenas uma correção agora.
    Se você copiar e colar ja vai funcionar.
    1 - Crie a classe "Leitura"
    2 - Crie o método que carrega o Objeto com os dados do XML "FromXmlString"
    3 - Só percorrer os dados do objeto

    Observação: O código foi testado diversas vezes ante de ser postado.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    quarta-feira, 20 de julho de 2016 13:29
  • Silvaney o console ta me retornando esse erro 

    Error 1 'System.Xml.Linq.XDocument' does not contain a definition for 'InnerXml' and no extension method 'InnerXml' accepting a first argument of type 'System.Xml.Linq.XDocument' could be found (are you missing a using directive or an assembly reference? Form1.cs 301 49 XML_BD

    quarta-feira, 20 de julho de 2016 16:38
  • Boa tarde,

    Troque por:

    Leitura leitura = FromXmlString(doc.ToString());

    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Marcado como Resposta CLPSimens quarta-feira, 20 de julho de 2016 20:15
    quarta-feira, 20 de julho de 2016 19:33
  • ele ta lendo apenas os sensores dos pendulos , e esta lendo apenas a primeira informaçao o xml conte mais de um silo ali coloquei apenas um como exemplo e se eu quiser ler toda informaçao 


    • Editado CLPSimens quarta-feira, 20 de julho de 2016 19:49
    quarta-feira, 20 de julho de 2016 19:48
  • Boa tarde,

    Amigo, poste o XML completo. A solução postada foi baseado no xml que você postou.
    Poste o xml e aponte quais dados você precisa obter dentro do xml.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    quarta-feira, 20 de julho de 2016 19:53
  • <?xml version="1.0" encoding="UTF-16"?>
    
    -<Leitura xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    
    
    -<silos>
    
    
    -<Silo>
    
    <ID>1</ID>
    
    <data>120716</data>
    
    <hora>0931</hora>
    
    <umidade>061</umidade>
    
    <temperatura>21</temperatura>
    
    
    -<pendulos>
    
    
    -<Pendulo>
    
    <ID_P>001</ID_P>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>25</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>002</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>24</S>
    
    <S>24</S>
    
    <S>24</S>
    
    <S>25</S>
    
    <S>24</S>
    
    <S>24</S>
    
    <S>24</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>003</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>004</ID_P>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>005</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    </pendulos>
    
    </Silo>
    
    
    -<Silo>
    
    <ID>2</ID>
    
    <data>010716</data>
    
    <hora>1100</hora>
    
    <umidade>052</umidade>
    
    <temperatura>23</temperatura>
    
    
    -<pendulos>
    
    
    -<Pendulo>
    
    <ID_P>001</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>002</ID_P>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>003</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>004</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>005</ID_P>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>006</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    </pendulos>
    
    </Silo>
    
    
    -<Silo>
    
    <ID>3</ID>
    
    <data>120716</data>
    
    <hora>0959</hora>
    
    <umidade>067</umidade>
    
    <temperatura>22</temperatura>
    
    
    -<pendulos>
    
    
    -<Pendulo>
    
    <ID_P>001</ID_P>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>25</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>27</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>002</ID_P>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>003</ID_P>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>004</ID_P>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>005</ID_P>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>28</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>006</ID_P>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>27</S>
    
    <S>28</S>
    
    <S>27</S>
    
    <S>28</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>28</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>007</ID_P>
    
    <S>28</S>
    
    <S>27</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>27</S>
    
    <S>28</S>
    
    <S>27</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S>28</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>008</ID_P>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>009</ID_P>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S>27</S>
    
    <S/>
    
    </Pendulo>
    
    </pendulos>
    
    </Silo>
    
    
    -<Silo>
    
    <ID>4</ID>
    
    <data>080716</data>
    
    <hora>1540</hora>
    
    <umidade>045</umidade>
    
    <temperatura>21</temperatura>
    
    
    -<pendulos>
    
    
    -<Pendulo>
    
    <ID_P>001</ID_P>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S>22</S>
    
    <S/>
    
    </Pendulo>
    
    </pendulos>
    
    </Silo>
    
    
    -<Silo>
    
    <ID>5</ID>
    
    <data>120716</data>
    
    <hora>1002</hora>
    
    <umidade>067</umidade>
    
    <temperatura>22</temperatura>
    
    
    -<pendulos>
    
    
    -<Pendulo>
    
    <ID_P>001</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>002</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>003</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>004</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>005</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>006</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>007</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>008</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>009</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    </pendulos>
    
    </Silo>
    
    
    -<Silo>
    
    <ID>6</ID>
    
    <data>120716</data>
    
    <hora>1005</hora>
    
    <umidade>067</umidade>
    
    <temperatura>22</temperatura>
    
    
    -<pendulos>
    
    
    -<Pendulo>
    
    <ID_P>001</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>002</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>003</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>26</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>004</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>26</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>005</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>26</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>26</S>
    
    <S>25</S>
    
    <S>26</S>
    
    <S>25</S>
    
    <S>26</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>26</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>006</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>007</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>008</ID_P>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>23</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S>25</S>
    
    <S/>
    
    </Pendulo>
    
    
    -<Pendulo>
    
    <ID_P>009</ID_P>
    
    <S>25</S>
    
    <S>26</S>
    
    <S>25</S>
    
    <S>26</S>
    
    <S>26</S>
    
    <S>26</S>
    
    <S>26</S>
    
    <S>26</S>
    
    <S>26</S>
    
    <S>26</S>
    
    <S>26</S>
    
    <S>26</S>
    
    <S>26</S>
    
    <S>26</S>
    
    <S>26</S>
    
    <S>26</S>
    
    <S/>
    
    </Pendulo>
    
    </pendulos>
    
    </Silo>
    
    </silos>
    
    </Leitura>

    eu quero a estrutura igual ta no xml ,depois vou exibir item por item em textbox

    mais se vc me ajuda com receber e estruturar esses dados ta ótimo depois me viro

    • Editado CLPSimens quarta-feira, 20 de julho de 2016 20:11
    quarta-feira, 20 de julho de 2016 20:08
  • Bom dia,

    Amigo, segue a classe:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication
    {
        /// <remarks/>
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
        public partial class Leitura
        {
    
            private LeituraSilos silosField;
    
            /// <remarks/>
            public LeituraSilos silos
            {
                get
                {
                    return this.silosField;
                }
                set
                {
                    this.silosField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilos
        {
    
            private LeituraSilosSilo[] siloField;
    
            private string[] textField;
    
            /// <remarks/>
            [System.Xml.Serialization.XmlElementAttribute("Silo")]
            public LeituraSilosSilo[] Silo
            {
                get
                {
                    return this.siloField;
                }
                set
                {
                    this.siloField = value;
                }
            }
    
            /// <remarks/>
            [System.Xml.Serialization.XmlTextAttribute()]
            public string[] Text
            {
                get
                {
                    return this.textField;
                }
                set
                {
                    this.textField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilosSilo
        {
    
            private string idField;
    
            private string dataField;
    
            private string horaField;
    
            private string umidadeField;
    
            private string temperaturaField;
    
            private LeituraSilosSiloPendulos pendulosField;
    
            private string[] textField;
    
            /// <remarks/>
            public string ID
            {
                get
                {
                    return this.idField;
                }
                set
                {
                    this.idField = value;
                }
            }
    
            /// <remarks/>
            public string data
            {
                get
                {
                    return this.dataField;
                }
                set
                {
                    this.dataField = value;
                }
            }
    
            /// <remarks/>
            public string hora
            {
                get
                {
                    return this.horaField;
                }
                set
                {
                    this.horaField = value;
                }
            }
    
            /// <remarks/>
            public string umidade
            {
                get
                {
                    return this.umidadeField;
                }
                set
                {
                    this.umidadeField = value;
                }
            }
    
            /// <remarks/>
            public string temperatura
            {
                get
                {
                    return this.temperaturaField;
                }
                set
                {
                    this.temperaturaField = value;
                }
            }
    
            /// <remarks/>
            public LeituraSilosSiloPendulos pendulos
            {
                get
                {
                    return this.pendulosField;
                }
                set
                {
                    this.pendulosField = value;
                }
            }
    
            /// <remarks/>
            [System.Xml.Serialization.XmlTextAttribute()]
            public string[] Text
            {
                get
                {
                    return this.textField;
                }
                set
                {
                    this.textField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilosSiloPendulos
        {
    
            private LeituraSilosSiloPendulosPendulo[] penduloField;
    
            private string[] textField;
    
            /// <remarks/>
            [System.Xml.Serialization.XmlElementAttribute("Pendulo")]
            public LeituraSilosSiloPendulosPendulo[] Pendulo
            {
                get
                {
                    return this.penduloField;
                }
                set
                {
                    this.penduloField = value;
                }
            }
    
            /// <remarks/>
            [System.Xml.Serialization.XmlTextAttribute()]
            public string[] Text
            {
                get
                {
                    return this.textField;
                }
                set
                {
                    this.textField = value;
                }
            }
        }
    
        /// <remarks/>
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class LeituraSilosSiloPendulosPendulo
        {
    
            private string iD_PField;
    
            private string[] sField;
    
            /// <remarks/>
            public string ID_P
            {
                get
                {
                    return this.iD_PField;
                }
                set
                {
                    this.iD_PField = value;
                }
            }
    
            /// <remarks/>
            [System.Xml.Serialization.XmlElementAttribute("S")]
            public string[] S
            {
                get
                {
                    return this.sField;
                }
                set
                {
                    this.sField = value;
                }
            }
        }
    }
    

    Carregando o objeto:

    XDocument doc = XDocument.Load(@"D:\leitura.xml");
    Leitura leitura = FromXmlString(doc.ToString());

    Pronto amigo, com o objeto carregado você pode fazer qualquer coisa.
    Qualquer dúvida, estou a disposição!

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney quinta-feira, 21 de julho de 2016 11:57
    • Marcado como Resposta CLPSimens quinta-feira, 21 de julho de 2016 13:20
    quinta-feira, 21 de julho de 2016 11:52
  • Obrigado silvaney pela ajuda , voce pode so dar um exemplo de como usar os dados do objeto por exemplo jogar os dados em um datagridview, obrigado!
    quinta-feira, 21 de julho de 2016 13:21
  • Bom dia,

    Segue um exemplo:
    Classe modelo

    public class Silo
    {
        public string ID { get; set; }
        public string Data { get; set; }
        public string Hora { get; set; }
        public string Umidade { get; set; }
        public string Temperatura { get; set; }
    }

    Consulta e preenchimento do DataGridView:

    XDocument doc = XDocument.Load(@"D:\leitura.xml");
    Leitura leitura = FromXmlString(doc.ToString());
    
    var silos = (from s in leitura.silos.Silo
                    select new Silo()
                    {
                        ID = s.ID,
                        Data = string.Format("{0}/{1}/{2}", s.data.Substring(0, 2), s.data.Substring(2, 2), s.data.Substring(4)),
                        Hora = s.hora,
                        Temperatura = s.temperatura,
                        Umidade = s.umidade
                    }).ToList();
    
    
    dataGridView1.DataSource = silos;

    Espero ter ajudado!

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney quinta-feira, 21 de julho de 2016 14:21
    • Marcado como Resposta CLPSimens quinta-feira, 21 de julho de 2016 14:30
    quinta-feira, 21 de julho de 2016 14:21
  • obrigado cara, e se eu quiser incluir os pendulos do silo ? 
    quinta-feira, 21 de julho de 2016 14:31
  • A partir dos exemplos postados você pode fazer qualquer coisa.
    O que precisa é você mentalizar como deseja fazer, pois você possui uma lista de silos, cada silo tem uma lista de Pendulos onde cada pendulo tem um id e uma lista de "S".
    É lógico que pra você montar uma grid com os dados vai precisar estruturar a maneira que deseja, pois os "S" dentro do pendulo pode variar, dessa forma não bastaria você colocar o id em uma coluna e carregar os "S" em outras pois não possui uma quantidade física.
    Mas se o que deseja é percorrer os Pendulos, (uma maneira simples) seria você percorrer (for) cada Silo e depois percorre o "S" de cada pendulo.

    Att,

     

    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Marcado como Resposta CLPSimens quinta-feira, 21 de julho de 2016 14:54
    quinta-feira, 21 de julho de 2016 14:53
  • vou tentar me virar agora Silvaney Obrigado pela ajuda cara.

    quinta-feira, 21 de julho de 2016 14:55
  • pode so dar um exemplo de como percorrer o pendulo pois nao estou conseguindo 
    quinta-feira, 21 de julho de 2016 17:15
  • Boa tarde,

    Segue um exemplo mais detalhado de como percorrer cada lista:

    XDocument doc = XDocument.Load(@"D:\leitura.xml");
    Leitura leitura = FromXmlString(doc.ToString());
    
    var silos = leitura.silos.Silo.ToList(); //selecionando todos os silos
    foreach (var p in silos)//Percorre os silos
    {
        var pendulos = p.pendulos.Pendulo.ToList(); //selecionando todos os pendulos de cada silo
        foreach (var item in pendulos)//Percorre os pendulos de cada silo
        {
            var pendulosS = item.S;// Obtendo todos os "S"
            foreach (var s in pendulosS)//Percorrendo os "S"
            {
                Console.WriteLine(string.Format("ID: {0}\tData: {1}\tID_P: {2}, S: {3}", p.ID, p.data, item.ID_P, s) );
            }
        }
    }
    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney quinta-feira, 21 de julho de 2016 17:37
    • Marcado como Resposta CLPSimens quinta-feira, 21 de julho de 2016 19:15
    quinta-feira, 21 de julho de 2016 17:37
  • Boa tarde CLPSimens,

    Obrigado por sua participação no Fórum MSDN.

    Essa thread está se tornando muito longa e pode ficar desconfortável para outros leitores.

    Peço que por gentileza não reabra mais essa thread. Caso ainda tenha dúvidas, se possível, por gentileza, abra outro tópico.

    Atenciosamente.


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    sexta-feira, 22 de julho de 2016 17:15
    Moderador