IMPORTAR V?RIOS XML
Então preciso de carregar todos que estão em uma pasta e carregar em um grid para depois jogar em um banco de dados SQL.
Tenho um código mais não consegui implementar ele.
//listar os arquivos
foreach (FileInfo fileinfo in Arquivos)
{
miLista1.Items.Add(diretorio + fileinfo.Name);
}
//percorrer lista de arquivos
foreach (string str in miLista1.Items)
{
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(str);
XmlNodeList procEventoNFe = xmlDocument.GetElementsByTagName([Ô]procEventoNFe[Ô]);
XmlNodeList evento = ((XmlElement)procEventoNFe[0]).GetElementsByTagName([Ô]evento[Ô]);
XmlNodeList infEvento = ((XmlElement)evento[0]).GetElementsByTagName([Ô]infEvento[Ô]);
//percorrer xml
foreach (XmlElement nodo in infEvento)
{
XmlNodeList CNPJ = nodo.GetElementsByTagName([Ô]CNPJ[Ô]);
XmlNodeList dhEvento = nodo.GetElementsByTagName([Ô]dhEvento[Ô]);
MessageBox.Show(CNPJ[0].InnerText + [Ô]
[Ô] + dhEvento[0].InnerText);
}
}
Citação::
Estou achando que você simplesmente não quer entender sobre serialização e uso de OOP. Pela quantidade de posts seus com AS MESMAS dúvidas, me leva a crer que você simplesmente não quer.
Pode ser que não cheguei em um determinado nÃvel de conhecimento.
Mas graças a seus vÃdeos eu cheguei até aqui, estou importando o produto para o grid, só não consegui pegar vários xml, e ler todos e inserir no grid.
Sei que é foda fazer essas perguntas mas, Cara to com a dúvida e postei o código cru sem as minhas alterações.
Desculpa por não formular a pergunta corretamente ou por estar com dificuldade de entender algumas coisas.
List<ProdutosEmissorImport> ProdutosEmissor = new List<ProdutosEmissorImport>();
foreach (XmlElement nodo in infProt)
{
ProdutosEmissorImport PROD = new ProdutosEmissorImport();
{
try
{
PROD._cProd = nodo.GetElementsByTagName([Ô]cProd[Ô])[0].InnerText.Trim();
PROD._xProd = nodo.GetElementsByTagName([Ô]xProd[Ô])[0].InnerText.Trim();
PROD._NCM = nodo.GetElementsByTagName([Ô]NCM[Ô])[0].InnerText.Trim();
PROD._uCom = nodo.GetElementsByTagName([Ô]uCom[Ô])[0].InnerText.Trim();
PROD._vUnCom = nodo.GetElementsByTagName([Ô]vUnCom[Ô])[0].InnerText.Trim();
PROD._CEST = nodo.GetElementsByTagName([Ô]CEST[Ô])[0].InnerText.Trim();
gridProdXML.Rows[i].Cells[0].Style.BackColor = Color.LightSalmon;
}
catch (Exception)
{
}
}
ProdutosEmissor.Add(PROD);
i++;
txtquantprodutos.Text = i.ToString();
// dgvProdutos.Rows.Add(PROD);
}
gridProdXML.DataSource = ProdutosEmissor;
Citação::
:
Estou achando que você simplesmente não quer entender sobre serialização e uso de OOP. Pela quantidade de posts seus com AS MESMAS dúvidas, me leva a crer que você simplesmente não quer.
Pode ser que não cheguei em um determinado nÃvel de conhecimento.
Mas graças a seus vÃdeos eu cheguei até aqui, estou importando o produto para o grid, só não consegui pegar vários xml, e ler todos e inserir no grid.
Sei que é foda fazer essas perguntas mas, Cara to com a dúvida e postei o código cru sem as minhas alterações.
Desculpa por não formular a pergunta corretamente ou por estar com dificuldade de entender algumas coisas.
Cada XML é uma instância de objeto, você percorre os arquivos, cria a instância desserializando o conteúdo de cada arquivo, adiciona os objetos para um List<T> onde T é a classe do objeto e depois faz o que quiser com essa lista. Um arquivo XML nada mais é que uma representação de dados, cada [Ô]nó[Ô] é uma classe, cada Ãtem de mesmo tipo dentro do nó é uma Lista(List<T>) de outra classe. Enquanto você enxergar um XML como um texto onde você fica buscando elementos por nome de Tag(GetElementsByTag), você vai ficar só patinando no mesmo lugar. Acho que não é a primeira vez que vou passar isso pra você, mas tenho um vÃdeo mostrando como fazer serialização e o processo reverso também.
Usei o GetElementsByTag em uma função que pega exatamente uma única função e ai ela atende bem no caso da transportadora só existe uma.
Porem da forma em que você faz no vÃdeo todo o documento XML fica a disposição para você usar a informação quando e onde quiser.
A maioria das vezes eu desisti de dar continuidade nas minhas perguntas, até mesmo por vergonha, mas essa eu vou insistir pois tentei aqui o a tarde inteira e não consegui fazer o mesmo que você fez em seu vÃdeo para vários arquivos. (Desserializando), ou dessa forma ai que postei.
directoryinfo directory = new directoryinfo(patch);
fileinfo[] files = directory.getfiles(xml);
foreach(Fileinfo fileinfo in files)
{
string caminho = directory + [Ô]\\[Ô] + fileinfo.name;
mylist.add(caminho);
}