Qual a forma correta de carregar + de 1 arquivo no IXMLDocument?

Delphi

XML

01/10/2019

Salve galera, estou fazendo da seguinte forma, porém só pega 1 arquivo:

* OBS: no Memo1 eu coloco o caminho dos arquivos XML *


var
    i: Integer;
    XML: IXMLDocument;

  XML := TXMLDocument.Create(self);

  for i := 0 to Memo1.Lines.Count - 1 do
    begin
      XML.LoadFromFile(Memo1.Lines[i]);
   end;


Abs!
Gxf

Gxf

Curtidas 0

Respostas

Rafael Bosco

Rafael Bosco

01/10/2019

Amigo, ele só ta carregando um, por que dentro do seu FOR, você precisa definir o que fará com o XML recém carregado:

O que você pretende fazer com o arquivo que foi carregado? Salvar em um banco de dados? Alimentar algum Objeto? Transferir esses dados para um Form?

Após você realizar a ação desejada, o FOR voltará para o indice corrente e irá ler o próximo arquivo que está no seu MEMO, se você deixa o código do jeito que está aí, ele não vai fazer nada mesmo.

var
    i: Integer;
    XML: IXMLDocument;
 
  XML := TXMLDocument.Create(self);
 
  for i := 0 to Memo1.Lines.Count - 1 do
    begin
      XML.LoadFromFile(Memo1.Lines[i]); 

        // COLOQUE AQUI O QUE VOCÊ PRECISA FAZER COM O XML CARREGADO
        // SE VOCE NÃO COLOCAR NADA AQUI, ELE SEMPRE VAI ESTAR CARREGADO APENAS COM O ULTIMO ARQUIVO DA LINHA DO MEMO
   end;

GOSTEI 0
Gxf

Gxf

01/10/2019

Eu coloquei em baixo do FOR oq tem que ser feito, que é inserir no BD, porém ele só insere o que esta na última linha do Memo1... Não consegui colocar o código td aqui, por isso simplifiquei, mas abaixo do FOR esta oq desejo, tanto que da certo inserir, porém só insere o XML que esta no caminho da última linha do Memo1.
GOSTEI 0
Rafael Bosco

Rafael Bosco

01/10/2019

Então o código que adiciona dentro do seu DB está DENTRO DO FOR? Se sim, é outro problema que está ocorrendo e não a leitura do XML, poderia nos enviar só o BEGIN / END do seu FOR? Não precisa colocar toda a estrutura de parâmetros de query e etc...
GOSTEI 0
Gxf

Gxf

01/10/2019

muito obrigado pela ajuda. consegui identificar oq esta causando o "primary key". vou dar uma analisada melhor no código e qlqr dúvida volto a posta. vlwww.
GOSTEI 0
POSTAR