Estou desenvolvendo uma aplicação onde preciso informar o código do municipio, baixei em .xls a planilha com todos os códigos de municipios, são mais de 10 mil registros, eu não tenho banco para manipular, apenas dou select em um banco postgres para recolher os dados necessários.
Pensei em transformar em um arquivo xml essa planilha e trabalhar com ela para consulta do código do municipio.
Agora a duvida, eu sempre trabalhei com xml para geração e leitura de arquivos pequenos o maior foi a Nf-e, e sempre usei o DOM para gerar o arquivo e o SAX para ler os arquivos xml, mas com um arquivo que vai servir como banco de dados qual a melhor forma de fazer a consulta nesse xml? pelo SAX mesmo varrendo todos os nós?
ou existe meneira mais simples e produtiva?
Não entendi… porque nao utilizar uma tabela no banco de dados ao invés de um XML ?
Tenho uma aplicação que usa o XStream para parsear arquivos XML de 50.000 registros, cada arquivo fica com aproximadamente 100 Mb, e funciona muito bem, mas nesse caso eu não faço pesquisas no XML, apenas leio e trato os dados que recebo, no final, servem para atualizar uma base de dados.
é que eu não posso manipular o banco de dados…esse banco de dados é PostGres 7.2 de uma aplicação em delphi para controle de estoque, etc.
O cliente precisa gerar a NFe e apenas me passaram as tabelas que eu preciso dar os selects e os devidos dados para conexao, mas o problema é que na parte de códigos de municipios eu preciso popular de algum lugar e a unica maneira que eu pensei foi em armazenar num arquivo xml e fazer ele trabalhar como se fosse uma tabela de BD mas que eu vou usar apenas para consulta nao vou alterar os dados.
Operações de I/O são sempre pesados. Se o problema não é performance creio que utilizar XML é um opção boa. O ideal seria inserir a tabela no banco de dados e trabalhar com cache de segundo nível.
Bom se você não pode acrescentar nada ao banco de dados então acho que pode pensar em utilizar o XML, parsear e transforma-lo em uma lista de objetos… se for realizar pesquisas seria bom utilizar uma hash, para pesquisar pela chave.
Como disse no meu caso, o XML possui 50.000 registros que são “parseados” e transformados em uma lista, no entanto eu somente preciso varrer a lista e realizar as operações apropriadas.
No meu caso eu transformo em um List, no momento de processar os registros a lista é quebrada em várias sublists e executada em threads.
Se você vai fazer pesquisas nessa lista, seria bom verificar qual a melhor implementação… não sou bom nisso, mas tem aquela implementação do tipo <Chave, Objeto> que poderia ser utilizada…
entendi, agora uma duvida tenho a planilha em .xls dos codigos de municipio com mais de 10 mil registros gerei um .xml no salvar como do execel mas ele gera um xml bem poluido, como eu poderia gerar um xml limpo existe alguma ferramenta pra isso?
e resolvi trabalhar com o arquivo .xml onde cada vez que eu vou gerar uma nfe nova eu rastreio no arquivo xml, ou tambem estou pensando em separar esse xml por estados ae seriam menos nós para percorrer.