Dificuldades em ler o xml
Bom dia a todos
Utilizando o Delphi 7 estou tentando ler o xml. Porém conforme podem ver no exemplo a baixo, tem 8 eventos que estou conseguindo fazer a leitura de todos normalmente. Acontece que depois de ler cada evento preciso testar para saber se tem mais. É neste ponto que estou com dificuldades. Alguém pode me ajudar?
Utilizando o Delphi 7 estou tentando ler o xml. Porém conforme podem ver no exemplo a baixo, tem 8 eventos que estou conseguindo fazer a leitura de todos normalmente. Acontece que depois de ler cada evento preciso testar para saber se tem mais. É neste ponto que estou com dificuldades. Alguém pode me ajudar?
<?xml version=1.0 encoding=ISO-8859-1?>
-<sroxml>
<versao>1.0</versao>
<qtd>1</qtd>
<TipoPesquisa>Lista de Objetos</TipoPesquisa>
<TipoResultado>Todos os eventos</TipoResultado>
-<objeto>
<numero>XQ262345673BR</numero>
+<evento>
+<evento>
+<evento>
+<evento>
+<evento>
+<evento>
+<evento>
-<evento>
<tipo>PO</tipo>
<status>01</status>
<data>05/06/2012</data>
<hora>07:00</hora>
<descricao>Postado</descricao>
<local>ACF BONTEMPO</local>
<codigo>06763970</codigo>
<cidade>TABOAO DA SERRA</cidade>
<uf>SP</uf>
<sto>72907304</sto>
</evento>
</objeto>
</sroxml>
Ureis
Curtidas 0
Respostas
Deivison Melo
13/06/2012
Exemplos:
https://www.devmedia.com.br/importando-xml-com-o-xmldocument-delphi/24288
https://www.devmedia.com.br/gerando-arquivos-xml/5290
https://www.devmedia.com.br/rodando-uma-aplicacao-em-pen-drive-com-xml-delphi-xe2-firemonkey/23200
Se tiver acesso ao conteúdo pago (video aula):
https://www.devmedia.com.br/trabalhando-com-arquivos-xml-no-delphi/1624
https://www.devmedia.com.br/importando-xml-com-o-xmldocument-delphi/24288
https://www.devmedia.com.br/gerando-arquivos-xml/5290
https://www.devmedia.com.br/rodando-uma-aplicacao-em-pen-drive-com-xml-delphi-xe2-firemonkey/23200
Se tiver acesso ao conteúdo pago (video aula):
https://www.devmedia.com.br/trabalhando-com-arquivos-xml-no-delphi/1624
GOSTEI 0
Ureis
13/06/2012
Obrigado pela ajuda amigo, mas não utilizo clientdataset.
O código esta igual ao colocado a baixo.
preciso fazer um teste no while para saber se tem mais items no evento para pegar.
obrigado.
O código esta igual ao colocado a baixo.
preciso fazer um teste no while para saber se tem mais items no evento para pegar.
xmlRetorno := Getsroxml(xmlDocument1);
iSeq := 0;
sTipoPesquisa := xmlRetorno.TipoPesquisa;
sTipoResultado := xmlRetorno.TipoResultado;
sNumero := xmlRetorno.Objeto.Numero;
while ? do
begin
sTipo := xmlRetorno.Objeto.Evento.Items[iSeq].Tipo;
sStatus := IntToStr(xmlRetorno.Objeto.Evento.Items[iSeq].Status);
sData := xmlRetorno.Objeto.Evento.Items[iSeq].Data;
sHora := xmlRetorno.Objeto.Evento.Items[iSeq].Hora;
sDescricao := xmlRetorno.Objeto.Evento.Items[iSeq].Descricao;
sRecebedor := xmlRetorno.Objeto.Evento.Items[iSeq].Recebedor;
sDocumento := xmlRetorno.Objeto.Evento.Items[iSeq].Documento;
sComentario := xmlRetorno.Objeto.Evento.Items[iSeq].Comentario;
sLocal := xmlRetorno.Objeto.Evento.Items[iSeq].Local;
sCodigo := IntToStr(xmlRetorno.Objeto.Evento.Items[iSeq].Codigo);
sCidade := xmlRetorno.Objeto.Evento.Items[iSeq].Cidade;
sUF := xmlRetorno.Objeto.Evento.Items[iSeq].Uf;
sSto := IntToStr(xmlRetorno.Objeto.Evento.Items[iSeq].Sto);
sDestLocal := xmlRetorno.Objeto.Evento.Items[iSeq].Destino.Local;
sDestCodigo := IntToStr(xmlRetorno.Objeto.Evento.Items[iSeq].Destino.Codigo);
sDestCidade := xmlRetorno.Objeto.Evento.Items[iSeq].Destino.Cidade;
sDestBairro := xmlRetorno.Objeto.Evento.Items[iSeq].Destino.Bairro;
sDestUF := xmlRetorno.Objeto.Evento.Items[iSeq].Destino.Uf;
iSeq := iSeq + 1;
end;
obrigado.
GOSTEI 0
Ureis
13/06/2012
Resolvido.
Utilizei um contador.
ex.: iTotIndex := xmlRetorno.Objeto.Evento.Count;
Utilizei um contador.
ex.: iTotIndex := xmlRetorno.Objeto.Evento.Count;
GOSTEI 0
Wesley Yamazack
13/06/2012
Olá UREIS, obrigado por partilhar a solução com o pessoal!!!
Sucesso pra ti e bons códigos!!!
Um abraço.
Sucesso pra ti e bons códigos!!!
Um abraço.
GOSTEI 0