Gerando XML para um registros selecionado.


A XML – eXtensible Markup Language – é uma linguagem de marcadores como a HTML e foi desenhada para descrever dados , a sua grande vantagem é que ela é extensível , ou seja , você não esta limitado a um certo número de tags , e pode criar as suas próprias tags, assim sendo ela é uma linguagem auto definível . Para descrever os dados a XML usa a DTD – Document Type Definition.

Para saber mais sobre o assunto leia em : XML - eXtensible Markup Language - Introdução

Neste artigo vou mostrar como você pode usar os recursos do VB para gerar um documento XML para um registro selecionado em um Data Grid. Vamos usar a ADO para fazer a conexão com a base de dados Nwind.mdb e a seguir exibir os dados em grid usando o controle Data Grid. Ao selecionar um registro e clicar no botão Gerar XML , um arquivo XML será gerado com os dados do registro , sendo exibido no seu navegador padrão. Ao trabalho...

1- Inicie um novo projeto no VB e faça as seguintes referêncais em seu projeto:

2- No formulário padrão insira : dois botões de comando , um controle Data Grid e um Label, conforme abaixo

3- Agora no na seção General declarations do formulário digite o código para declarar as variáveis objeto usadas:

Option Explicit
Private cn As ADODB.Connection
Private rs As ADODB.Recordset

4- No evento Click do botão Conectar insira o código que irá conectar com a base de dados e gerar a grade exibindo os dados:

Private Sub cmdConectar_Click()
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "\teste\NWIND.MDB"
cn.CursorLocation = adUseClient
cn.Open

rs.Open "select ProductID, ProductName, SupplierID from products", cn, adOpenStatic,_
adLockOptimistic

Set DataGrid1.DataSource = rs
End Sub

5- A seguir inclua o código abaixo no evento Click do botão - Gerar XML - : Este código irá gerar o arquivo XML para o registro selecionado.

Private Sub cmdXML_Click()
Dim objDOC As DOMDocument
Dim objNodeList As IXMLDOMNodeList
Dim objIE As InternetExplorer

Set objDOC = New DOMDocument
objDOC.Load App.Path & "\nwindprod.xml"
Set objNodeList = objDOC.documentElement.selectNodes("Product")

With objNodeList(0)
  .childNodes(0).Text = rs.Fields("ProductID")
  .childNodes(1).Text = "" & rs.Fields("ProductName")
  .childNodes(2).Text = "" & rs.Fields("SupplierID")
End With

objDOC.save App.Path & "\nwindprod.xml"
Set objIE = New InternetExplorer
objIE.Navigate App.Path & "\nwindprod.xml"
objIE.Visible = True
End Sub

6- Para encerrar feche todos os objetos e libera memória:

Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
rs.Close
cn.Close

Set rs = Nothing
Set cn = Nothing
End Sub

Ao executar e clicar no botão Conectar você vera a tela a seguir:

Ao selecionar um registro e clicar no botão Gerar XML teremos:

Aguarde mais dicas sobre VB. Até mais ...