1) Introdução
Este artigo demonstra como realizar a coleta de dados de um arquivo XML.
2) 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 bancos de dados. Seu principal propósito é facilitar o compartilhamento de informações através da Internet.
Neste artigo, usaremos um arquivo XML com a seguinte estrutura:
A primeira linha deste arquivo mostra a seção Elipse. Essa seção possui dois elementos filhos: Empresa e Dados. Dados possui informações da empresa.
3) Script para leitura do arquivo
Para acessar estas informações no E3, será preciso criar o objeto DOMDocument, que dá acesso aos métodos e propriedades do arquivo XML. Será necessário configurar a propriedade async como false.
set docxml = createobject(“MSXML2.DOMDocument”)
docxml.async = false
O método Load carrega o documento XML desejado:
docxml.load(“.\Teste.xml”)
A partir deste ponto, é possível acessar os elementos do arquivo XML através do método SelectSingleNode, que dá acesso ao elemento informado.
set EleElipse = docxml.SelectSingleNode(“Elipse/Empresa”)
Porém, para acessar o seu valor, deve-se utilizar o método Text:
empresa = EleElipse.Text
Para acessar os elementos filhos de Dados, devemos utilizar o método ChildNodes, passando o índice do elemento filho:
set EleDados = docxml.SelectSingleNode(“Elipse/Dados”)
set EleFilho = EleDados.ChildNodes(0)
rua = EleFilho.Text
Script Completo:
set docxml = createobject("MSXML2.DOMDocument")
docxml.async = false
docxml.load(".\Teste.xml")
set EleElipse = docxml.SelectSingleNode("Elipse/Empresa")
empresa = EleElipse.Text
MsgBox empresa
set EleDados = docxml.SelectSingleNode("Elipse/Dados")
set EleFilho = EleDados.ChildNodes(0)
rua = EleFilho.Text
MsgBox rua
4) Aplicação Exemplo
No anexo deste artigo estão uma aplicação exemplo (desenvolvida no E3 versão 4.0 Build 225) e o arquivo XML (anexado na mesma pasta do arquivo .dom e .prj).
Foram inseridos na tela um objeto ListBox para mostrar os dados retornados e um botão com o script a ser executado.
5) Referências
1. Microsoft MSDN Library Online
2. W3Schools
3. ScriptBrasil