Desenvolvendo VBA e XML, utilizando a API DOM (Document Object Model)

Conforme vimos no artigo anterior, SAX (Simple API for XML) é uma das alternativas para se lidar com arquivos XML. Outra ótima alternativa é o DOM (Document Object Model).

Existem + de 1ª maneira de se fazer a mesma coisa (lidar com XML), porém a API (Application Programming Interface) SAX é mais indicada quando temos um arquivo XML imenso e apenas queremos tratar algumas informações pois esta API consome menos memória que a DOM já que não armazena seus dados em memória, apenas passa por eles. Já a API DOM é indicada para tratar um arquivo XML por completo, porém, há o revés de ter que se carregar em memória toda a sua estrutura, que é o que o DOM faz quando representa programaticamente um arquivo XML.

Seguem, então, algumas diferenças:

SAX

– Analisa nó por nó;

– Não armazena o arquivo XML em memória (representação de seus nós programaticamente);

– Não se pode inserir ou deletar nós

– É um analisador baseado em eventos;

– Geralmente roda um pouco mais rápido que DOM.

DOM

– Armazena toda a estrutura XML (documento XML) em memória antes de realizar qualquer processamento;

– Ocupa mais memória;

– Pode-se inserir ou deletar nós;

– Pode-se navegar por qualquer direção pelos seus nós;

– DOM representa um modelo de árvore;

– Preserva comentários;

– Geralmente roda um pouco mais lento que SAX.

Você pode fazer o download de uma planilha do MS EXCEL que contém ambos os exemplos (SAX / DOM) chegando a um mesmo resultado.

Leia também:

– Desenvolvendo VBA e XML, utilizando a API SAX (Simple API for XML)

– Desenvolvendo VBA e XML, fazendo uma requisição web (Web Request)

– Outros posts de VBA e VB6

– Programação Orientada a Objetos com VBA e VB6

– Padrão Anbima de Posição de Fundos. Eu importei.

Advertisements
Esta entrada foi publicada em Visual Basic 6.0 e VBA com as etiquetas , , , , , . ligação permanente.

Uma resposta a Desenvolvendo VBA e XML, utilizando a API DOM (Document Object Model)

  1. Pingback: Desenvolvendo VBA e XML, fazendo uma requisição web (Web Request) | Pedro Abs

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s