none
Preenchendo listView com arquivo .xml em C# RRS feed

  • Pergunta

  • Bom tarde pessoal, acredito que esse preenchimento não deve ser tão complicado, peguei um exemplo que pode ser util, gostaria de saber se vocês poderiam me ajudar a adapta-lo para a leitura de XML , retirando a leitura de banco de dados.

    Segue o código abaixo

     private void cmdExecuta_Click(object sender, System.EventArgs e) 
     {
    	 
          //verifica se foi informada uma consulta
         if (txtSql.Text.Equals(""))
         {
         	MessageBox.Show("Digite uma instrução válida.");
            return;
         }
    
           //define a string de conexão
           string sDBstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + txtBD.Text;
    
         //criar o objeto connection
         OleDbConnection conn = new OleDbConnection(sDBstr);
    
         try
         {
            //limpa o listview
            lvwResultado.Columns.Clear() ;
            lvwResultado.Items.Clear();
    
            //abre a conexao
            conn.Open();
    
           //cria um comando oledb
           OleDbCommand cmd = conn.CreateCommand();
           //define o tipo do comando como texto 
           cmd.CommandText = txtSql.Text;
    
           //executa o comando e gera um datareader
           OleDbDataReader dr = cmd.ExecuteReader();
    
           //preenche o cabeçalho do listview com os nomes dos campos
           for (int i = 0; i< dr.FieldCount; i++) 
           {
             ColumnHeader ch = new ColumnHeader();
             ch.Text=dr.GetName(i);
             lvwResultado.Columns.Add(ch);
           }
    
           //define um item listview
           ListViewItem item; 
    
           //inicia leitura do datareader
           while (dr.Read()) 
           {
             item=new ListViewItem(); 
             item.Text= dr.GetValue(0).ToString();
    
             //preenche o listview com itens
             for (int i=1 ; i< dr.FieldCount; i++) {
                item.SubItems.Add(dr.GetValue(i).ToString());
             }
             lvwResultado.Items.Add(item);
           }
           //fecha o datareader
           dr.Close();
         } 
         catch ( System.Data.OleDb.OleDbException  ex)
         {
           MessageBox.Show("Ocorreu um erro durante a execução da instrução SQL." +
                   "Erro : " + ex.Message, "SQL");
         } 
         finally 
         {
         	//fecha a conexao
           conn.Close();
         }
        }

    Abaixo segue o exemplo de como posso ler o .XML

                    XmlDocument xmlDocument = new XmlDocument();
                        xmlDocument.Load(fi.FullName);
                        XmlNodeList nfeProc = xmlDocument.GetElementsByTagName("nfeProc");
                        XmlNodeList infNFe = ((XmlElement)nfeProc[0]).GetElementsByTagName("infNFe");
                        XmlNodeList ide = ((XmlElement)nfeProc[0]).GetElementsByTagName("ide");
                        XmlNodeList emit = ((XmlElement)nfeProc[0]).GetElementsByTagName("emit");
     
                        string cnpjEmit = String.Empty;
                    
    
                        //percorrer xml
    
                        foreach (XmlElement nodo1 in emit)
                        {
                            XmlNodeList CNPJemit = nodo1.GetElementsByTagName("CNPJ");
                            cnpjEmit = CNPJemit[0].InnerText;
                        }
    

    Agradeço desde já...


    Th3W4rl0ck

    sexta-feira, 30 de novembro de 2012 16:44

Respostas

  • Olá Anderson, adaptando algumas coisas consegui fazer o procedimento, segue o código abaixo:

    Funcionou muitou bem!

       private void ListarNotas()
            {
                foreach (string fileSystem in System.IO.Directory.GetFiles(txtEntradaDetalhes.Text, "*.xml", System.IO.SearchOption.AllDirectories))
                {
    
                    try
                    {
    
                        System.IO.FileInfo fi = new System.IO.FileInfo(fileSystem);
    
                        XmlDocument xmlDocument = new XmlDocument();
                        xmlDocument.Load(fi.FullName);
                        XmlNodeList nfeProc = xmlDocument.GetElementsByTagName("nfeProc");
                        XmlNodeList infNFe = ((XmlElement)nfeProc[0]).GetElementsByTagName("infNFe");
                        XmlNodeList ide = ((XmlElement)nfeProc[0]).GetElementsByTagName("ide");
                        XmlNodeList prod = ((XmlElement)nfeProc[0]).GetElementsByTagName("prod");
                        XmlNodeList dest = ((XmlElement)nfeProc[0]).GetElementsByTagName("dest");
                        XmlNodeList ICMS = ((XmlElement)nfeProc[0]).GetElementsByTagName("ICMS");
                        XmlNodeList IPI = ((XmlElement)nfeProc[0]).GetElementsByTagName("IPI");
                        XmlNodeList PIS = ((XmlElement)nfeProc[0]).GetElementsByTagName("PIS");
                        XmlNodeList COFINS = ((XmlElement)nfeProc[0]).GetElementsByTagName("COFINS");
    
    
                        string variavelnNF = String.Empty;
                        string variaveldEmi = String.Empty;
                        string variavelCFOP = String.Empty;
                        string variavelCNPJ_CPF = String.Empty;
                        string variavelxNome = String.Empty;
                        string variavelUF = String.Empty;
                        string variavelvProd = String.Empty;
                        string variavelvBC = String.Empty;
                        string variavelvICMS = String.Empty;
                        string variavelvIPI = String.Empty;
                        string variavelvPIS = String.Empty;
                        string variavelvCOFINS = String.Empty;
    
                        foreach (XmlElement nodo1 in ide)
                        {
                            XmlNodeList nNF = nodo1.GetElementsByTagName("nNF");
                            variavelnNF = nNF[0].InnerText;
    
                        }
    
                        foreach (XmlElement nodo2 in ide)
                        {
                            XmlNodeList dEmi = nodo2.GetElementsByTagName("dEmi");
                            variaveldEmi = dEmi[0].InnerText;
                        }
    
                        foreach (XmlElement nodo3 in prod)
                        {
                            XmlNodeList CFOP = nodo3.GetElementsByTagName("CFOP");
                            variavelCFOP = CFOP[0].InnerText;
                        }
    
                        foreach (XmlElement nodo4 in dest)
                        {
                            XmlNodeList CNPJ_CPF = nodo4.GetElementsByTagName("CNPJ");
                            variavelCNPJ_CPF = CNPJ_CPF[0].InnerText;
    
                        }
    
                        foreach (XmlElement nodo5 in dest)
                        {
                            XmlNodeList xNome = nodo5.GetElementsByTagName("xNome");
                            variavelxNome = xNome[0].InnerText;
                        }
    
                        foreach (XmlElement nodo6 in dest)
                        {
                            XmlNodeList UF = nodo6.GetElementsByTagName("UF");
                            variavelUF = UF[0].InnerText;
                        }
    
                        foreach (XmlElement nodo7 in prod)
                        {
                            XmlNodeList vProd = nodo7.GetElementsByTagName("vProd");
                            variavelvProd = vProd[0].InnerText;
                        }
    
                        foreach (XmlElement nodo8 in ICMS)
                        {
                            XmlNodeList vBC = nodo8.GetElementsByTagName("vBC");
                            variavelvBC = vBC[0].InnerText;
                        }
    
                        foreach (XmlElement nodo9 in ICMS)
                        {
                            XmlNodeList vICMS = nodo9.GetElementsByTagName("vICMS");
                            variavelvICMS = vICMS[0].InnerText;
                        }
    
                        foreach (XmlElement nodo10 in IPI)
                        {
                            XmlNodeList vIPI = nodo10.GetElementsByTagName("vIPI");
                            variavelvIPI = vIPI[0].InnerText;
                        }
    
                        foreach (XmlElement nodo11 in PIS)
                        {
                            XmlNodeList vPIS = nodo11.GetElementsByTagName("vPIS");
                            variavelvPIS = vPIS[0].InnerText;
                        }
    
                        foreach (XmlElement nodo12 in COFINS)
                        {
                            XmlNodeList vCOFINS = nodo12.GetElementsByTagName("vCOFINS");
                            variavelvCOFINS = vCOFINS[0].InnerText;
    
                        }
    
    
                        ListViewItem item = new ListViewItem(variavelnNF);
                        item.SubItems.Add(variaveldEmi);
                        item.SubItems.Add(variavelCFOP);
                        item.SubItems.Add(variavelCNPJ_CPF);
                        item.SubItems.Add(variavelxNome);
                        item.SubItems.Add(variavelUF);
                        item.SubItems.Add(variavelvProd);
                        item.SubItems.Add(variavelvBC);
                        item.SubItems.Add(variavelvICMS);
                        item.SubItems.Add(variavelvIPI);
                        item.SubItems.Add(variavelvPIS);
                        item.SubItems.Add(variavelvCOFINS);
                        listViewDetalhes.Items.Add(item);
    
    
                    }
    
                    catch
                    {
    
                    }
    
                }
            }
    

    Por favor, marquem como resposta, para assim ajudar os demais!!!

    Até logo

    Abraços



    Th3W4rl0ck

    quarta-feira, 5 de dezembro de 2012 10:48

Todas as Respostas

  • http://www.macoratti.net/10/11/c_dbxml.htm

    tenta seguir esse tutorial, foi o mesmo que usei quando precisei usar o xml como db.

    abç!

            private void Form1_Load(object sender, EventArgs e)
            {
                FillList();
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                FillList();
            }
    
    
            public static DataTable GetPeople()
            {
                DataSet dsStore = new DataSet();
                dsStore.ReadXml("Clientes.xml");
                return dsStore.Tables["Cliente"];
            }
    
    
            private void FillList()
            {
                listView1.Items.Clear();
                DataTable dtPeople = GetPeople();
                listView1.BeginUpdate();
                foreach (DataRow dr in dtPeople.Rows)
            {
            ListViewItem listItem = new ListViewItem(dr["ID"].ToString());
            listItem.ImageIndex = 0;
            listItem.SubItems.Add(dr["Nome"].ToString());
            listItem.SubItems.Add(dr["Caminho"].ToString());
            listView1.Items.Add(listItem);
            }
                listView1.EndUpdate();
            }
    
    
        }
    adapta esse código que fiz, para o que você precisa, deve funcionar.
    sábado, 1 de dezembro de 2012 13:33
  • Olá Anderson, adaptando algumas coisas consegui fazer o procedimento, segue o código abaixo:

    Funcionou muitou bem!

       private void ListarNotas()
            {
                foreach (string fileSystem in System.IO.Directory.GetFiles(txtEntradaDetalhes.Text, "*.xml", System.IO.SearchOption.AllDirectories))
                {
    
                    try
                    {
    
                        System.IO.FileInfo fi = new System.IO.FileInfo(fileSystem);
    
                        XmlDocument xmlDocument = new XmlDocument();
                        xmlDocument.Load(fi.FullName);
                        XmlNodeList nfeProc = xmlDocument.GetElementsByTagName("nfeProc");
                        XmlNodeList infNFe = ((XmlElement)nfeProc[0]).GetElementsByTagName("infNFe");
                        XmlNodeList ide = ((XmlElement)nfeProc[0]).GetElementsByTagName("ide");
                        XmlNodeList prod = ((XmlElement)nfeProc[0]).GetElementsByTagName("prod");
                        XmlNodeList dest = ((XmlElement)nfeProc[0]).GetElementsByTagName("dest");
                        XmlNodeList ICMS = ((XmlElement)nfeProc[0]).GetElementsByTagName("ICMS");
                        XmlNodeList IPI = ((XmlElement)nfeProc[0]).GetElementsByTagName("IPI");
                        XmlNodeList PIS = ((XmlElement)nfeProc[0]).GetElementsByTagName("PIS");
                        XmlNodeList COFINS = ((XmlElement)nfeProc[0]).GetElementsByTagName("COFINS");
    
    
                        string variavelnNF = String.Empty;
                        string variaveldEmi = String.Empty;
                        string variavelCFOP = String.Empty;
                        string variavelCNPJ_CPF = String.Empty;
                        string variavelxNome = String.Empty;
                        string variavelUF = String.Empty;
                        string variavelvProd = String.Empty;
                        string variavelvBC = String.Empty;
                        string variavelvICMS = String.Empty;
                        string variavelvIPI = String.Empty;
                        string variavelvPIS = String.Empty;
                        string variavelvCOFINS = String.Empty;
    
                        foreach (XmlElement nodo1 in ide)
                        {
                            XmlNodeList nNF = nodo1.GetElementsByTagName("nNF");
                            variavelnNF = nNF[0].InnerText;
    
                        }
    
                        foreach (XmlElement nodo2 in ide)
                        {
                            XmlNodeList dEmi = nodo2.GetElementsByTagName("dEmi");
                            variaveldEmi = dEmi[0].InnerText;
                        }
    
                        foreach (XmlElement nodo3 in prod)
                        {
                            XmlNodeList CFOP = nodo3.GetElementsByTagName("CFOP");
                            variavelCFOP = CFOP[0].InnerText;
                        }
    
                        foreach (XmlElement nodo4 in dest)
                        {
                            XmlNodeList CNPJ_CPF = nodo4.GetElementsByTagName("CNPJ");
                            variavelCNPJ_CPF = CNPJ_CPF[0].InnerText;
    
                        }
    
                        foreach (XmlElement nodo5 in dest)
                        {
                            XmlNodeList xNome = nodo5.GetElementsByTagName("xNome");
                            variavelxNome = xNome[0].InnerText;
                        }
    
                        foreach (XmlElement nodo6 in dest)
                        {
                            XmlNodeList UF = nodo6.GetElementsByTagName("UF");
                            variavelUF = UF[0].InnerText;
                        }
    
                        foreach (XmlElement nodo7 in prod)
                        {
                            XmlNodeList vProd = nodo7.GetElementsByTagName("vProd");
                            variavelvProd = vProd[0].InnerText;
                        }
    
                        foreach (XmlElement nodo8 in ICMS)
                        {
                            XmlNodeList vBC = nodo8.GetElementsByTagName("vBC");
                            variavelvBC = vBC[0].InnerText;
                        }
    
                        foreach (XmlElement nodo9 in ICMS)
                        {
                            XmlNodeList vICMS = nodo9.GetElementsByTagName("vICMS");
                            variavelvICMS = vICMS[0].InnerText;
                        }
    
                        foreach (XmlElement nodo10 in IPI)
                        {
                            XmlNodeList vIPI = nodo10.GetElementsByTagName("vIPI");
                            variavelvIPI = vIPI[0].InnerText;
                        }
    
                        foreach (XmlElement nodo11 in PIS)
                        {
                            XmlNodeList vPIS = nodo11.GetElementsByTagName("vPIS");
                            variavelvPIS = vPIS[0].InnerText;
                        }
    
                        foreach (XmlElement nodo12 in COFINS)
                        {
                            XmlNodeList vCOFINS = nodo12.GetElementsByTagName("vCOFINS");
                            variavelvCOFINS = vCOFINS[0].InnerText;
    
                        }
    
    
                        ListViewItem item = new ListViewItem(variavelnNF);
                        item.SubItems.Add(variaveldEmi);
                        item.SubItems.Add(variavelCFOP);
                        item.SubItems.Add(variavelCNPJ_CPF);
                        item.SubItems.Add(variavelxNome);
                        item.SubItems.Add(variavelUF);
                        item.SubItems.Add(variavelvProd);
                        item.SubItems.Add(variavelvBC);
                        item.SubItems.Add(variavelvICMS);
                        item.SubItems.Add(variavelvIPI);
                        item.SubItems.Add(variavelvPIS);
                        item.SubItems.Add(variavelvCOFINS);
                        listViewDetalhes.Items.Add(item);
    
    
                    }
    
                    catch
                    {
    
                    }
    
                }
            }
    

    Por favor, marquem como resposta, para assim ajudar os demais!!!

    Até logo

    Abraços



    Th3W4rl0ck

    quarta-feira, 5 de dezembro de 2012 10:48