1) Introdução
Este artigo demonstra como realizar a coleta de dados de um web service que usa XML como protocolo. Para explicar esta coleta, usaremos um web service que fornece um endereço de acordo com o CEP informado.
2) O que são web services
Os serviços web (web services) são a base da computação distribuída através da Internet. Um consumidor de um web service pode chamar quaisquer operações que este serviço ofereça. O provedor do serviço, ou seja, a aplicação que implementa o web service, não precisa necessariamente estar na mesma máquina onde o web service está sendo utilizado: ele pode estar em qualquer outro lugar da Internet.
Os web services utilizam protocolos padrões da web, como XML, SOAP e HTTP. A linguagem XML é usada para representação e transmissão de dados estruturados, sendo totalmente independente de hardware, de software ou mesmo de linguagem de programação.
3) Arquivo XML
O XML (eXtensible Markup Language) é um formato para a criação de documentos com dados organizados de forma hierárquica. Ele está frequentemente presente em documentos de texto formatados, imagens vetoriais ou banco de dados. Seu propósito principal é facilitar o compartilhamento de informações através da Internet.
Conforme vimos anteriormente, usaremos neste artigo um arquivo XML de um web service que retorna um endereço de acordo com o CEP : http://cep.republicavirtual.com.br/web_cep.php?cep=
Para exibir o endereço, informe o CEP após o sinal de igualdade, acrescentando “&formato=xml”, como no exemplo abaixo:
http://cep.republicavirtual.com.br/web_cep.php?cep=90510002&formato=xml
Abaixo, é possível ver o código XML retornado deste web service:
A primeira linha deste XML mostra a versão do arquivo:
A segunda linha apresenta a seção webservicecep. Esta seção possui diversos dados, como nome da cidade, bairro, logradouro, etc.
4) Leitura de um XML via scripts no E3
Para acessar estas informações no E3, será preciso criar o objeto XMLDOM, que dá acesso aos métodos e propriedades do arquivo XML. Será necessário passarmos a propriedade async para false.
set docxml = createobject(“microsoft.xmldom”)
docxml.async = false
O método Load carrega o documento XML desejado:
docxml.Load(“http://cep.republicavirtual.com.br/web_cep.php?cep=90510002&formato=xml“)
A partir deste ponto, é possível acessar os elementos do arquivo XML através do método getElementsByTagName, que retorna uma lista de todos os elementos descendentes do elemento especificado.
Com isto, para acessar os elementos filhos de webservicecep é necessário utilizar o script abaixo:
docxml.getElementsByTagName(“logradouro”).Item(0).Text
Script completo:
dim docxml, logradouro set docxml = createobject("microsoft.xmldom") docxml.async = false docxml.Load("http://cep.republicavirtual.com.br/web_cep.php?cep=90510002&formato=xml") logradouro = docxml.getElementsByTagName("logradouro").Item(0).Text MsgBox logradouro
5) Aplicação exemplo
Anexada a este artigo está uma aplicação exemplo, desenvolvida no E3 versão 4.5 Build 245, para a realização da leitura de arquivos XML. O mesmo web service foi usado como referência.
Na tela foi inserido um setpoint para digitar o CEP, um ListBox para mostrar os dados retornados, e um botão com o scritp a ser executado.
No evento Click do botão foi inserido praticamente o mesmo script descrito anteriormente, apenas acrescentado os objetos SetPoint, ListBox e a montagem do link para com o botão “Abrir mapa”, abrir o google maps em um browser de internet.
Observação: Para rodar a aplicação, é necessário estar conectado à Internet.
6) Referências
Assista o vídeo relacionado a este artigo em nosso canal do YouTube.