none
Alterar XML com dados de um grid view RRS feed

  • Pergunta

  • Bom dia!

    Alguem pode me ajudar com esse probleminha.... Preciso alterar os dados do XML de acordo com os campos marcados em um gridview. Por exemplo tenho um XML que tem 2 produtos, no grid view eu seleciono dois produtos que vão substituir esses do XML, porem ao fazer essa alteração nos dois itens do XML fica gravado o ultimo item que selecionei no grid. Segue codigo abaixo

    private void btnCarregar_Click(object sender, EventArgs e)
            {
                XmlDocument doc = new XmlDocument();
                if (ofdXML.ShowDialog() == DialogResult.OK)
                {
                    doc.Load(ofdXML.FileName);
                    var infProd = doc.GetElementsByTagName("prod");
                    var infChave = doc.GetElementsByTagName("infProt");
    
    
                    foreach (XmlElement ch in infChave)
                    {
                        string chave = ch.GetElementsByTagName("chNFe")[0].InnerText.Trim();
                        foreach (XmlElement prd in infProd)
                        {
    
                            for (int i = 0; i < dgvItens.Rows.Count; i++)
                            {
    
                                if (Convert.ToBoolean(dgvItens.Rows[i].Cells[0].EditedFormattedValue))
                                {
                                    prd.GetElementsByTagName("cProd")[0].InnerText = dgvItens.Rows[i].Cells[5].Value.ToString();
                                    prd.GetElementsByTagName("xProd")[0].InnerText = dgvItens.Rows[i].Cells[6].Value.ToString();
                                    prd.GetElementsByTagName("cEAN")[0].InnerText = dgvItens.Rows[i].Cells[7].Value.ToString();
                                    prd.GetElementsByTagName("qCom")[0].InnerText = dgvItens.Rows[i].Cells[8].Value.ToString();
    
                                }
    
    
                            }
                        }
                        sfdXML.FileName = chave + ".xml";
                    }
    
    
    
    
                }
                if (sfdXML.ShowDialog() == DialogResult.OK)
                {
                    doc.Save(sfdXML.FileName);
                }
            }
        }

    quarta-feira, 19 de dezembro de 2018 13:12