Fórum Ler aquivo XML sequêncialmente #356427
02/04/2008
0
Colegas;
Tenho o seguinte arquivo XML:
Como eu faço para navegar através das tags TABLE, de modo que eu possa pegar de forma sequêncial os dados dos usuários?
Tenho o seguinte arquivo XML:
<?xml version="1.0" standalone="yes"?> <DataSetUsuarios> <TABLE> <CODIGO>1</CODIGO> <NOME>USUARIO 1</NOME> </TABLE> <TABLE> <CODIGO>2</CODIGO> <NOME>USUARIO 2</NOME> </TABLE> </DataSetUsuarios>
Como eu faço para navegar através das tags TABLE, de modo que eu possa pegar de forma sequêncial os dados dos usuários?
Vispo
Curtir tópico
+ 0
Responder
Posts
02/04/2008
Fabiano Góes
Bom cara, você pode tratar este xml como um dataset ai navegar como se estive em uma tabela de banco de dados:
no Delphi
menu -> Tools -> Xml Mapper.
no Xml Mapper
- File -> Open, carregue o seu xml.
- botão direto no Node Table e selecione: Select All Children.
- botão direto no Node Table e selecione: Create Datapacket from Xml.
- na area central selecione o groupbox: Datapacket to Xml e clique em Create and Test Transformation.
- File -> Save -> Transformation, e salve o arquivo .xtr no mesmo diretorio do seu xml ex: [b:4357a0c185]DspToXml.xtr[/b:4357a0c185](este arquivo será usado para leitura)
- na area central selecione o groupbox: Xml to Datapacket e clique em Create and Test Transformation.
- File -> Save -> Transformation, e salve o arquivo .xtr no mesmo diretorio do seu xml ex: [b:4357a0c185]XmlToDsp.xtr[/b:4357a0c185](este arquivo será usado para escrita)
feito isso pode fechar o Xml Mapper e voltar ao Delphi.
no form coloque os componentes da aba Data Access:
XMLTransformProvider
a propriedade XmlDataFile: aponta para o seu xml
a propriedade TransformRead.TransformationFile aponta para o arquivo: [b:4357a0c185]DspToXml.xtr[/b:4357a0c185]
a propriedade TransformWrite.TransformationFile aponta para o arquivo: [b:4357a0c185]XmlToDsp.xtr[/b:4357a0c185]
ClientDataSet(com a propriedade ProviderName setada para o XMLTransformProvider)
beleza agora você pode tratar o ClientDataSet como se estivesse em uma tabela de banco de dados
pra varrer os dados pode se usar um loop:
você pode até conectar um DataSource ao ClientDataSet e com uma DBGrid Vizualizar os dados.
em fim, pode ser tratado como um Dataset.
se precisar inserir/editar os dados para salvar use: ClientDataSet.SaveToFile(´SeuXml.xml´);
se entendi bem a sua necessidade isso deve resolver,
qualquer coisa estou a disposição.
um abraço!!!
no Delphi
menu -> Tools -> Xml Mapper.
no Xml Mapper
- File -> Open, carregue o seu xml.
- botão direto no Node Table e selecione: Select All Children.
- botão direto no Node Table e selecione: Create Datapacket from Xml.
- na area central selecione o groupbox: Datapacket to Xml e clique em Create and Test Transformation.
- File -> Save -> Transformation, e salve o arquivo .xtr no mesmo diretorio do seu xml ex: [b:4357a0c185]DspToXml.xtr[/b:4357a0c185](este arquivo será usado para leitura)
- na area central selecione o groupbox: Xml to Datapacket e clique em Create and Test Transformation.
- File -> Save -> Transformation, e salve o arquivo .xtr no mesmo diretorio do seu xml ex: [b:4357a0c185]XmlToDsp.xtr[/b:4357a0c185](este arquivo será usado para escrita)
feito isso pode fechar o Xml Mapper e voltar ao Delphi.
no form coloque os componentes da aba Data Access:
XMLTransformProvider
a propriedade XmlDataFile: aponta para o seu xml
a propriedade TransformRead.TransformationFile aponta para o arquivo: [b:4357a0c185]DspToXml.xtr[/b:4357a0c185]
a propriedade TransformWrite.TransformationFile aponta para o arquivo: [b:4357a0c185]XmlToDsp.xtr[/b:4357a0c185]
ClientDataSet(com a propriedade ProviderName setada para o XMLTransformProvider)
beleza agora você pode tratar o ClientDataSet como se estivesse em uma tabela de banco de dados
pra varrer os dados pode se usar um loop:
ClientDataSet.First; While not ClientDataSet.Eof do begin // aqui você faz o que precisar com os dados ClientDataSet.Next; end;
você pode até conectar um DataSource ao ClientDataSet e com uma DBGrid Vizualizar os dados.
em fim, pode ser tratado como um Dataset.
se precisar inserir/editar os dados para salvar use: ClientDataSet.SaveToFile(´SeuXml.xml´);
se entendi bem a sua necessidade isso deve resolver,
qualquer coisa estou a disposição.
um abraço!!!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)