Lendo arquivos XML no NetExpress 3.1 com MSXML


nfe

Olá companheiros !

Depois de um longo tempo sem atualizações, trouxe mais uma dica bacana para os amigos que como eu, estão sofrendo com a NF-e no NetExpress.

Utilizo o Uninfe para realizar o envio e retorno das notas e sempre tratei os arquivos de retorno no NetExpress com o INSPECT. Hoje porém,  me deparei com um problema mais sério, ler um XML de uma NF-e inteira e importar as informações para o meu sistema. Mais de 300 TAGS’s com INSPECT complicaria um pouco, certo ?

Já encontrei muitos exemplos de leitura de XML com as novas versões do NetExpress, a partir da versão 4 esse controle é nativo da ferramenta, mas e como fica o meu Net 3.1 ? Encontrei nesse site um demo de leitura do XML e para a minha surpresa, rodou certinho no Net 3.1, dei uma boa olhada para pegar o conceito  e resolvi criar um demo um pouco mais “didático”, para que outros também possam utilizar essa ferramenta.

Imagine poder chamar um método, passando para ele somente o nome do arquivo XML e retornando um objeto NFE com todos os dados da nota carregados ?

invoke wsrXml "CarregaNfe" using wsChave returning umaNFe

Esse é o meu objetivo, e com essa rotina ele ficou mais próximo de ser alcançado.  =)

Agora chega falatório, vamos a classe.

Para testar, declare a classe wsrXml no seu programa e simplesmente faça a chamada assim:

invoke wsrXml "LeXml"

No método “LeXml” eu deixei o caminho absoluto do arquivo XML que será aberto, não esqueça de alterar isso também antes de testar.

Daí pra frente é só animar e ler os comentários no código fonte. Ele vai imprimir na tela todas as TAG’s e Valores do arquivo XML. Só gostaria de lembrar que esse exemplo foi feito exclusivamente para um XML que tenha uma TAG principal e as suas “filhas”. O correto seria utilizar recursividade para poder ler infinitos níveis e valores no XML. Assim que eu tiver novos métodos, prometo atualizar o exemplo.

Fazer download do projeto - Ou você pode acessar a área de downloads.

O projeto foi útil pra você ? Deixe seu comentário para que eu saiba disso.

Abraço.

  1. #1 by André Bononi at October 8th, 2009

    Olá, Alexandre. Ainda não olhei o seu exemplo, mas, tenho certeza que será útil. Agora, me responde uma pergunta: “É padrão os Alexandres serem, assim, tão prestativos e inteligentes?”. Não bastasse o nosso amigo Alexandre Cortez com o NetAlExpress, agora temos o Alexandre Hogler com este excelente blog para socorrer os míseros Mortais1. Valeu, abraços e mais sucesso!

  2. #2 by LeX at October 8th, 2009

    André Bononi :

    Olá, Alexandre. Ainda não olhei o seu exemplo, mas, tenho certeza que será útil. Agora, me responde uma pergunta: “É padrão os Alexandres serem, assim, tão prestativos e inteligentes?”. Não bastasse o nosso amigo Alexandre Cortez com o NetAlExpress, agora temos o Alexandre Hogler com este excelente blog para socorrer os míseros Mortais1. Valeu, abraços e mais sucesso!

    Olá André,

    Muitíssimo obrigado pelo feedback. Fico muito feliz quando alguém passa por aqui e deixa um comentário.

    Quanto a sua pergunta, com certeza devo ter pego essa mania de compartilhar conhecimento com o próprio Alexandre Cortez, já que devo muito do que aprendi nos últimos meses a ele.

    Abraços e obrigado pela visita.

  3. #3 by Paulo at October 8th, 2009

    Rapaz, muito bom mesmo, cada vez mais tenho a certeza que tenho que aprender programação orientada a OO, mais não ta facil, você não penso ainda em dar aula via WEB , se sim, ja tem um primeiro interessado

(will not be published)
  1. Nenhuma trackback.